Skip to content

Conversation

@camilamacedo86
Copy link
Contributor

@camilamacedo86 camilamacedo86 commented Oct 14, 2025

Description

  • Promote Single Own Feature Gate GA
  • Promote the Config spec to the public/stable API. Without the spec.config.inline.watchNamespace field, there’s no place to declare which namespace the operator should watch, so the controller can only ever assume the default AllNamespaces behaviour. That’s why we need config available in the GA schema: it’s the user-facing knob that flips the controller into Single/Own namespace mode. Example:
    Config: &ocv1.ClusterExtensionConfig{
    ConfigType: ocv1.ClusterExtensionConfigTypeInline,
    Inline: &apiextensionsv1.JSON{
    Raw: []byte(`{"watchNamespace": "` + expectedWatchNamespace + `"}`),
    },
    },

Reviewer Checklist

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

@camilamacedo86 camilamacedo86 requested a review from a team as a code owner October 14, 2025 11:22
@openshift-ci openshift-ci bot requested review from joelanford and oceanc80 October 14, 2025 11:22
@camilamacedo86 camilamacedo86 changed the title Promote Single Own Feature Gate to GA ✨ Promote Single Own Feature Gate to GA Oct 14, 2025
@netlify
Copy link

netlify bot commented Oct 14, 2025

Deploy Preview for olmv1 ready!

Name Link
🔨 Latest commit efc78ab
🔍 Latest deploy log https://app.netlify.com/projects/olmv1/deploys/68fb5f30e636e300077833e6
😎 Deploy Preview https://deploy-preview-2268--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.

@camilamacedo86 camilamacedo86 changed the title ✨ Promote Single Own Feature Gate to GA ✨ Promote Single Own Feature Gate to GA (OPRUN-4098) Oct 14, 2025
@camilamacedo86 camilamacedo86 changed the title ✨ Promote Single Own Feature Gate to GA (OPRUN-4098) WIP: ✨ Promote Single Own Feature Gate to GA (OPRUN-4098) Oct 14, 2025
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 14, 2025
@camilamacedo86 camilamacedo86 force-pushed the promote-single-own-feature branch from 6ff525c to 6fb12ed Compare October 14, 2025 12:09
@camilamacedo86 camilamacedo86 changed the title WIP: ✨ Promote Single Own Feature Gate to GA (OPRUN-4098) WIP: ✨ Promote Single Own Feature Gate AND Config spec in the CR to GA (OPRUN-4098) Oct 14, 2025
@camilamacedo86 camilamacedo86 changed the title WIP: ✨ Promote Single Own Feature Gate AND Config spec in the CR to GA (OPRUN-4098) ✨ Promote Single Own Feature Gate AND Config spec in the CR to GA (OPRUN-4098) Oct 14, 2025
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 14, 2025
@camilamacedo86 camilamacedo86 changed the title ✨ Promote Single Own Feature Gate AND Config spec in the CR to GA (OPRUN-4098) WIP: ✨ Promote Single Own Feature Gate AND Config spec in the CR to GA (OPRUN-4098) Oct 14, 2025
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 14, 2025
@codecov
Copy link

codecov bot commented Oct 14, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.41%. Comparing base (25d3e43) to head (efc78ab).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2268      +/-   ##
==========================================
+ Coverage   71.28%   71.41%   +0.12%     
==========================================
  Files          90       90              
  Lines        7003     7003              
==========================================
+ Hits         4992     5001       +9     
+ Misses       1599     1591       -8     
+ Partials      412      411       -1     
Flag Coverage Δ
e2e 47.61% <ø> (+1.73%) ⬆️
experimental-e2e 14.70% <ø> (+0.11%) ⬆️
unit 58.87% <ø> (ø)

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.

@camilamacedo86 camilamacedo86 changed the title WIP: ✨ Promote Single Own Feature Gate AND Config spec in the CR to GA (OPRUN-4098) ✨ Promote Single Own Feature Gate AND Config spec in the CR to GA (OPRUN-4098) Oct 14, 2025
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 14, 2025
@camilamacedo86
Copy link
Contributor Author

/hold

We might need to discuss more how to work with see: #2267 (comment)

So it si WIP

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 14, 2025
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 21, 2025
@camilamacedo86 camilamacedo86 force-pushed the promote-single-own-feature branch from b877152 to 97e8c3f Compare October 21, 2025 08:13
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 21, 2025
@camilamacedo86 camilamacedo86 force-pushed the promote-single-own-feature branch 2 times, most recently from 4799e19 to 02c4de7 Compare October 21, 2025 08:21
Comment on lines 12 to 13
- SingleOwnNamespaceInstallSupport
- WebhookProviderCertManager
Copy link
Contributor

Choose a reason for hiding this comment

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

Since this is now enabled by default, neither of these should be here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I missed in the rebase

Comment on lines 37 to 51
func TestMain(m *testing.M) {
cfg = ctrl.GetConfigOrDie()

var err error
utilruntime.Must(apiextensionsv1.AddToScheme(scheme.Scheme))
c, err = client.New(cfg, client.Options{Scheme: scheme.Scheme})
utilruntime.Must(err)

os.Exit(m.Run())
}

func TestNoop(t *testing.T) {
t.Log("Running experimental-e2e tests")
defer utils.CollectTestArtifacts(t, artifactName, c, cfg)
}
Copy link
Contributor

@tmshort tmshort Oct 21, 2025

Choose a reason for hiding this comment

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

I'd like to see this file renamed to experimental_test.go (or similar) and just contain TestMain() and TestNoop(). The Boxcutter tests should be in a separate file.

helm/tilt.yaml Outdated
Comment on lines 17 to 18
- SingleOwnNamespaceInstallSupport
- WebhookProviderCertManager
Copy link
Contributor

Choose a reason for hiding this comment

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

These are now on by default, so they should be removed.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Rebase sorry

@camilamacedo86 camilamacedo86 force-pushed the promote-single-own-feature branch 3 times, most recently from a3d83cc to ea2d9a7 Compare October 21, 2025 18:54
@tmshort
Copy link
Contributor

tmshort commented Oct 21, 2025

Thank you!
/lgtm
/approve

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Oct 21, 2025
@openshift-ci
Copy link

openshift-ci bot commented Oct 21, 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 Oct 21, 2025
@camilamacedo86
Copy link
Contributor Author

@perdasilva
I will not remove the hold
I will let you to do so when you see that is good enough

@tmshort
Copy link
Contributor

tmshort commented Oct 23, 2025

Are we just waiting for #2283?

Copilot AI review requested due to automatic review settings October 24, 2025 11:12
@camilamacedo86 camilamacedo86 force-pushed the promote-single-own-feature branch from ea2d9a7 to efc78ab Compare October 24, 2025 11:12
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Oct 24, 2025
@openshift-ci
Copy link

openshift-ci bot commented Oct 24, 2025

New changes are detected. LGTM label has been removed.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR promotes the Single Own Feature Gate and Config spec from experimental/alpha to GA (General Availability). The changes enable Single/Own namespace installation modes by default and expose the config field in the standard API schema, allowing operators to be installed in specific namespaces rather than only supporting the AllNamespaces mode.

Key changes:

  • Feature gate SingleOwnNamespaceInstallSupport promoted from alpha (default: false) to GA (default: true)
  • Config spec field promoted from experimental to stable API
  • Test reorganization: TestClusterExtensionVersionUpdate moved from e2e to new experimental-e2e package

Reviewed Changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
internal/operator-controller/features/features.go Promotes SingleOwnNamespaceInstallSupport feature gate to GA with default enabled
api/v1/clusterextension_types.go Removes experimental marker from Config field
manifests/standard.yaml Adds config field schema to standard CRD
manifests/standard-e2e.yaml Adds config field schema to standard e2e CRD
helm/olmv1/base/operator-controller/crd/standard/olm.operatorframework.io_clusterextensions.yaml Adds config field schema to helm CRD template
manifests/experimental.yaml Removes SingleOwnNamespaceInstallSupport feature gate flag
manifests/experimental-e2e.yaml Removes SingleOwnNamespaceInstallSupport feature gate flag
helm/tilt.yaml Removes SingleOwnNamespaceInstallSupport from enabled features
helm/experimental.yaml Removes SingleOwnNamespaceInstallSupport from enabled features
test/e2e/single_namespace_support_test.go Refactors to use shared test infrastructure from e2e package
test/experimental-e2e/experimental_test.go Creates new experimental test package with shared test setup
test/experimental-e2e/boxcutter_support_test.go Moves version update test to experimental package
hack/demo/single-namespace-demo-script.sh Updates demo to use standard manifests instead of experimental
hack/demo/own-namespace-demo-script.sh Updates demo to use standard manifests instead of experimental
docs/tutorials/explore-available-content.md Removes feature gate requirement note
docs/draft/tutorials/explore-available-content-metas-endpoint.md Removes feature gate requirement note
docs/draft/howto/single-ownnamespace-install.md Updates documentation to reflect GA status
docs/project/olmv1_limitations.md Updates install mode limitations
docs/api-reference/olmv1-api-reference.md Removes experimental marker from config field documentation

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

inline must be set if configType is 'Inline'.
inline accepts arbitrary JSON/YAML objects.
inline is validation at runtime against the schema provided by the bundle if a schema is provided.
Copy link

Copilot AI Oct 24, 2025

Choose a reason for hiding this comment

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

Corrected grammar: 'inline is validation' should be 'inline is validated'.

Suggested change
inline is validation at runtime against the schema provided by the bundle if a schema is provided.
inline is validated at runtime against the schema provided by the bundle if a schema is provided.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good catcher, but not related. I will do a follow-up to do this fix.

inline must be set if configType is 'Inline'.
inline accepts arbitrary JSON/YAML objects.
inline is validation at runtime against the schema provided by the bundle if a schema is provided.
Copy link

Copilot AI Oct 24, 2025

Choose a reason for hiding this comment

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

Corrected grammar: 'inline is validation' should be 'inline is validated'.

Suggested change
inline is validation at runtime against the schema provided by the bundle if a schema is provided.
inline is validated at runtime against the schema provided by the bundle if a schema is provided.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good catcher, but not related. I will do a follow-up to do this fix.

inline must be set if configType is 'Inline'.
inline accepts arbitrary JSON/YAML objects.
inline is validation at runtime against the schema provided by the bundle if a schema is provided.
Copy link

Copilot AI Oct 24, 2025

Choose a reason for hiding this comment

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

Corrected grammar: 'inline is validation' should be 'inline is validated'.

Suggested change
inline is validation at runtime against the schema provided by the bundle if a schema is provided.
inline is validated at runtime against the schema provided by the bundle if a schema is provided.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good catcher, but not related. I will do a follow-up to do this fix.

@camilamacedo86
Copy link
Contributor Author

I rebased with the main changes
Now, we have all in place so I think we can go forward here

@tmshort @perdasilva

I am removing

/hold cancel

So, that you can review and recheck again.

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 24, 2025
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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants