Skip to content

Conversation

tmshort
Copy link
Contributor

@tmshort tmshort commented Jun 27, 2025

Fix #2015

This adds manifests/experimental.yaml

The difference between the experimental manifest and the standard manifest is the presence of the experimental CRD vs the standard CRD (as of right now there is only a difference in annotations), and the feature-gated components.

This change supports defining feature components in exactly one place:

  • GA'd features are put into components/base/common
  • Feature-Gated/Experimental/TechPreview features are put into components/base/experimental

This adds new components to make constructing the overlays easier:

components/base/common includes everything but CRDs and experimental features:

  • base/catalog (but not CRDs)
  • base/operator-controller (but not CRDs)
  • base/common
  • GA'd features (currently none)

components/base/standard adds the standard CRD:

  • component/base/common component
  • standard CRDs

components/base/experimental includes the experimental CRDs and features:

  • component/base/common component
  • experimental CRDs
  • experimental (non-GA'd) features:
    • components/features/synthetic-user-permissions
    • components/features/webhook-provider-certmanager
    • components/features/webhook-provider-openshift-serviceca

By necessity, this removes the crd from the config/base/.../kustomization.yaml files. These kustomization.yaml files define the namespace and prefix for resources, so we need to continue to reference them. Since the CRDs do not have a namespace, and do not use the prefix, the crd directory can be removed.

Fix the basic-olm overlay to use the new standard component

Add new run-experimental target, to run with the experimental manifest.

This is part of the feature-gated API functionality.

Description

Reviewer Checklist

  • API Go Documentation
  • Tests: Unit Tests (and E2E Tests, if appropriate)
  • Comprehensive Commit Messages
  • Links to related GitHub Issue(s)

@tmshort tmshort requested a review from a team as a code owner June 27, 2025 18:01
Copy link

netlify bot commented Jun 27, 2025

Deploy Preview for olmv1 ready!

Name Link
🔨 Latest commit 8968efc
🔍 Latest deploy log https://app.netlify.com/projects/olmv1/deploys/685ef1cfa6a8ba0008930ebd
😎 Deploy Preview https://deploy-preview-2063--olmv1.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link

codecov bot commented Jun 27, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 73.86%. Comparing base (8228000) to head (8968efc).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2063      +/-   ##
==========================================
+ Coverage   73.82%   73.86%   +0.04%     
==========================================
  Files          81       81              
  Lines        7365     7365              
==========================================
+ Hits         5437     5440       +3     
+ Misses       1588     1586       -2     
+ Partials      340      339       -1     
Flag Coverage Δ
e2e 44.15% <ø> (+0.04%) ⬆️
unit 60.25% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@tmshort
Copy link
Contributor Author

tmshort commented Jun 27, 2025

/approve

Copy link

openshift-ci bot commented Jun 27, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: tmshort

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 27, 2025
@tmshort tmshort force-pushed the exp-std-component branch 2 times, most recently from ac5b27c to 67531a1 Compare June 27, 2025 19:15
This adds `manifests/experimental.yaml`

The difference between the experimental manifest and the standard
manifest is the presence of the experimental CRD vs the standard CRD
(as of right now there is only a difference in annotations), and the
feature-gated components.

This change supports defining feature components in _exactly_ one place:
* GA'd features are put into `components/base/common`
* Feature-Gated/Experimental/TechPreview features are put into `components/base/experimental`

This adds new components to make constructing the overlays easier:

`components/base/common` includes everything but CRDs and experimental features:
* `base/catalog` (but not CRDs)
* `base/operator-controller` (but not CRDs)
* `base/common`
* GA'd features (currently none)

`components/base/standard` adds the standard CRD:
* `component/base/common` component
* standard CRDs

`components/base/experimental` includes the experimental CRDs and features:
* `component/base/common` component
* experimental CRDs
* experimental (non-GA'd) features:
  - `components/features/synthetic-user-permissions`
  - `components/features/webhook-provider-certmanager`
  - `components/features/webhook-provider-openshift-serviceca`

By necessity, this removes the crd from the `config/base/.../kustomization.yaml`
files. These `kustomization.yaml` files define the namespace and prefix
for resources, so we need to continue to reference them. Since the CRDs
do not have a namespace, and do not use the prefix, the `crd` directory
can be removed.

Fix the basic-olm overlay to use the new standard component

Add new `run-experimental` target, to run with the experimental manifest.

This is part of the feature-gated API functionality.

Signed-off-by: Todd Short <tshort@redhat.com>
@tmshort tmshort force-pushed the exp-std-component branch from 67531a1 to 8968efc Compare June 27, 2025 19:32
@tmshort tmshort changed the title 🌱 Add experimental manifest 🌱 OPRUN-3955: Add experimental manifest Jun 27, 2025
# and provide alerts from the metrics based on the rules that we set.
.PHONY: e2e-metrics
e2e-metrics: #HELP Request metrics from prometheus; place in ARTIFACT_PATH if set
e2e-metrics: #EXHELP Request metrics from prometheus; place in ARTIFACT_PATH if set
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not related but very small, thank you for the catcher 👍


.PHONY: run-experimental
run-experimental: SOURCE_MANIFEST := $(EXPERIMENTAL_MANIFEST)
run-experimental: run #HELP Build the operator-controller then deploy it with the experimental manifest into a new kind cluster.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
run-experimental: run #HELP Build the operator-controller then deploy it with the experimental manifest into a new kind cluster.
run-experimental: run #EXHELP Build the operator-controller then deploy it with the experimental manifest into a new kind cluster.

@camilamacedo86
Copy link
Contributor

/lgtm

We need to add the e2e tests for the experimental feature to see how it will play out and fix any downstream issues.
I think it's all fine, and we can circle back if needed.

Great work 👍

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jun 28, 2025
@openshift-merge-bot openshift-merge-bot bot merged commit f050355 into operator-framework:main Jun 28, 2025
25 of 26 checks passed
@tmshort
Copy link
Contributor Author

tmshort commented Jun 28, 2025

We need to add the e2e tests for the experimental feature to see how it will play out and fix any downstream issues.
I think it's all fine, and we can circle back if needed.

Yes, that is the plan!

@tmshort tmshort deleted the exp-std-component branch June 28, 2025 23:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Reorganize the Kustomize Config Directory and Create Manifests
2 participants