Skip to content

Conversation

@perdasilva
Copy link
Contributor

Description

There's still some contention around the API spec downstream. In case changes are required, let's revert this before we cut a new release and make sure there's upstream/downstream parity in the API spec.

Reviewer Checklist

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

Copilot AI review requested due to automatic review settings October 28, 2025 22:14
@perdasilva perdasilva requested a review from a team as a code owner October 28, 2025 22:14
@netlify
Copy link

netlify bot commented Oct 28, 2025

Deploy Preview for olmv1 ready!

Name Link
🔨 Latest commit 0b65330
🔍 Latest deploy log https://app.netlify.com/projects/olmv1/deploys/690220a30d0f6b000801af68
😎 Deploy Preview https://deploy-preview-2292--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

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 changes the SingleOwnNamespaceInstallSupport feature gate from General Availability (GA, enabled by default) to Alpha (disabled by default), reflecting that this feature requires additional validation before being production-ready.

  • Demoted SingleOwnNamespaceInstallSupport feature gate from GA to Alpha status
  • Updated experimental manifests and Helm configurations to explicitly enable the feature gate
  • Consolidated test files by moving content from boxcutter_support_test.go and experimental_test.go into single_namespace_support_test.go
  • Updated documentation to reflect the Alpha status and added instructions for enabling the feature gate
  • Marked the config field in ClusterExtension API as experimental

Reviewed Changes

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

Show a summary per file
File Description
internal/operator-controller/features/features.go Changed SingleOwnNamespaceInstallSupport from GA (default: true) to Alpha (default: false)
manifests/experimental.yaml Added feature gate flag to enable SingleOwnNamespaceInstallSupport
manifests/experimental-e2e.yaml Added feature gate flag for e2e testing environment
helm/experimental.yaml Added feature to enabled features list in Helm config
helm/tilt.yaml Added feature to enabled features list for Tilt development
test/experimental-e2e/single_namespace_support_test.go Consolidated test setup and added version update test from deleted file
test/experimental-e2e/experimental_test.go Deleted - moved content to single_namespace_support_test.go
test/experimental-e2e/boxcutter_support_test.go Deleted - moved test to single_namespace_support_test.go
hack/demo/single-namespace-demo-script.sh Updated to use experimental manifests and enable feature gate via kubectl patch
hack/demo/own-namespace-demo-script.sh Updated to use experimental manifests and enable feature gate via kubectl patch
docs/draft/howto/single-ownnamespace-install.md Updated documentation to reflect Alpha status and added feature gate enablement instructions
docs/tutorials/explore-available-content.md Added note about feature gate requirement for single/own namespace support
docs/draft/tutorials/explore-available-content-metas-endpoint.md Added note about feature gate requirement for single/own namespace support
docs/project/olmv1_limitations.md Reverted documentation to state only AllNamespaces is supported by default
api/v1/clusterextension_types.go Marked config field as experimental
docs/api-reference/olmv1-api-reference.md Updated API documentation to reflect config field as experimental
manifests/standard.yaml Removed config field from standard CRD
manifests/standard-e2e.yaml Removed config field from standard e2e CRD
helm/olmv1/base/operator-controller/crd/standard/olm.operatorframework.io_clusterextensions.yaml Removed config field from base CRD

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


# remove feature gate from deployment
echo "Removing feature gate from operator-controller..."
kubectl patch deployment -n olmv1-system operator-controller-controller-manager --type='json' -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/args", "value": "--feature-gates=SingleOwnNamespaceInstallSupport=true"}]' || true
Copy link

Copilot AI Oct 28, 2025

Choose a reason for hiding this comment

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

The kubectl patch 'remove' operation should not include a 'value' field. The 'remove' operation in JSON Patch only requires the 'path' field, and including 'value' is invalid. This will cause the patch to fail (silently due to '|| true'). The correct operation should remove the specific argument from the array by index or use a different approach.

Suggested change
kubectl patch deployment -n olmv1-system operator-controller-controller-manager --type='json' -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/args", "value": "--feature-gates=SingleOwnNamespaceInstallSupport=true"}]' || true
kubectl patch deployment -n olmv1-system operator-controller-controller-manager --type='json' -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/args/-"}]' || true

Copilot uses AI. Check for mistakes.

# remove feature gate from deployment
echo "Removing feature gate from operator-controller..."
kubectl patch deployment -n olmv1-system operator-controller-controller-manager --type='json' -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/args", "value": "--feature-gates=SingleOwnNamespaceInstallSupport=true"}]' || true
Copy link

Copilot AI Oct 28, 2025

Choose a reason for hiding this comment

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

The kubectl patch 'remove' operation should not include a 'value' field. The 'remove' operation in JSON Patch only requires the 'path' field, and including 'value' is invalid. This will cause the patch to fail (silently due to '|| true'). The correct operation should remove the specific argument from the array by index or use a different approach.

Suggested change
kubectl patch deployment -n olmv1-system operator-controller-controller-manager --type='json' -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/args", "value": "--feature-gates=SingleOwnNamespaceInstallSupport=true"}]' || true
# Find the index of the last argument in the args array
last_index=$(kubectl get deployment -n olmv1-system operator-controller-controller-manager -o json | jq '.spec.template.spec.containers[0].args | length - 1')
# Remove the last argument (feature gate) from the args array
kubectl patch deployment -n olmv1-system operator-controller-controller-manager --type='json' -p="[{'op': 'remove', 'path': '/spec/template/spec/containers/0/args/${last_index}'}]" || true

Copilot uses AI. Check for mistakes.
@codecov
Copy link

codecov bot commented Oct 28, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.25%. Comparing base (3c2fcb4) to head (0b65330).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2292      +/-   ##
==========================================
- Coverage   71.38%   71.25%   -0.13%     
==========================================
  Files          90       90              
  Lines        7003     7003              
==========================================
- Hits         4999     4990       -9     
- Misses       1592     1600       +8     
- Partials      412      413       +1     
Flag Coverage Δ
e2e 45.85% <ø> (-1.78%) ⬇️
experimental-e2e 14.59% <ø> (?)
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.

Copy link
Contributor

@camilamacedo86 camilamacedo86 left a comment

Choose a reason for hiding this comment

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

We can re-add after. 👍

/lgtm

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

tmshort commented Oct 29, 2025

/approve

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 29, 2025
@tmshort
Copy link
Contributor

tmshort commented Oct 29, 2025

/override crd-diff
This is expected as the CRD is being reverted.

@openshift-ci
Copy link

openshift-ci bot commented Oct 29, 2025

@tmshort: Overrode contexts on behalf of tmshort: crd-diff

In response to this:

/override crd-diff
This is expected as the CRD is being reverted.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@perdasilva
Copy link
Contributor Author

/override crd-diff/crd-diff

@openshift-ci
Copy link

openshift-ci bot commented Oct 29, 2025

@perdasilva: /override requires failed status contexts, check run or a prowjob name to operate on.
The following unknown contexts/checkruns were given:

  • crd-diff/crd-diff

Only the following failed contexts/checkruns were expected:

  • Autovalidate
  • Verify PR title
  • crd-diff
  • e2e-kind
  • extension-developer-e2e
  • go-apidiff
  • go-verdiff
  • goreleaser
  • lint
  • netlify/olmv1/deploy-preview
  • tide
  • unit-test-basic
  • upgrade-e2e
  • verify

If you are trying to override a checkrun that has a space in it, you must put a double quote on the context.

In response to this:

/override crd-diff/crd-diff

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@perdasilva
Copy link
Contributor Author

/override crd-diff

@openshift-ci
Copy link

openshift-ci bot commented Oct 29, 2025

@perdasilva: Overrode contexts on behalf of perdasilva: crd-diff

In response to this:

/override crd-diff

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

…o GA (OPRUN-4098) (operator-framework#2268)"

This reverts commit 3c2fcb4.

Signed-off-by: Per G. da Silva <pegoncal@redhat.com>
@perdasilva perdasilva force-pushed the revert-singleownns-ga branch from 89c1329 to 0b65330 Compare October 29, 2025 14:11
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Oct 29, 2025
@perdasilva
Copy link
Contributor Author

/override crd-diff

@openshift-ci
Copy link

openshift-ci bot commented Oct 29, 2025

@perdasilva: Overrode contexts on behalf of perdasilva: crd-diff

In response to this:

/override crd-diff

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

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

openshift-ci bot commented Oct 29, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: camilamacedo86, 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

@tmshort
Copy link
Contributor

tmshort commented Oct 29, 2025

/override crd-diff

@openshift-ci
Copy link

openshift-ci bot commented Oct 29, 2025

@tmshort: Overrode contexts on behalf of tmshort: crd-diff

In response to this:

/override crd-diff

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@tmshort
Copy link
Contributor

tmshort commented Oct 30, 2025

/lgtm cancel

@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Oct 30, 2025
@tmshort
Copy link
Contributor

tmshort commented Oct 30, 2025

/lgtm

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

tmshort commented Oct 30, 2025

I ended up disabling crd-diff temporarily.

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.

3 participants