Skip to content

🌱 OPRUN-4776: Separate direct ClusterObjectSet E2E scenarios - #2950

Draft
fao89 wants to merge 7 commits into
operator-framework:mainfrom
fao89:OPRUN-4776
Draft

fao89 wants to merge 7 commits into
operator-framework:mainfrom
fao89:OPRUN-4776

Conversation

@fao89

@fao89 fao89 commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

Description

The nine direct ClusterObjectSet scenarios now have an @ObjectController tag and dedicated step definitions. The E2E runner discovers the object-controller Deployment independently, uses its namespace for readiness, and provides --e2e.object-controller-only to require an installation without ClusterExtension or ClusterCatalog APIs. An explicitly requested standalone suite or integrated Boxcutter suite fails readiness when object-controller is missing. The E2E README documents the standalone command.

This implements OPRUN-4776 under OPRUN-4738. It depends on #2949 (OPRUN-4775); review the focused branch comparison for this slice. The original combined work is #2938. This draft targets main, so its Files changed tab also includes earlier stacked subtasks until they merge.

Validation

  • make verify passed on the rebased branch. Targeted Go lint reported zero issues. The race-enabled E2E selection test passed all seven cases, and the feature runner compiled.
  • On a disposable KIND cluster with only the ClusterObjectSet OLM CRD and object-controller installed, all nine direct scenarios passed: 75/75 steps, zero skipped or undefined scenarios (5m16s).
  • After removing the object-controller Deployment, a selected standalone scenario failed at its readiness step in 183 ms instead of being silently skipped.
  • With cert-manager and all three freshly built controllers installed, direct ClusterObjectSet discovery passed one scenario and six steps without the standalone flag. The existing features/install.feature:11 ClusterExtension installation passed one scenario and eleven steps, including catalog resolution, rollout, bundle version, and managed resources. make docker-build IMAGE_TAG=oprun-4776-integration passed.

Reviewer Checklist

  • API Go Documentation (no API definition changes in this slice)
  • Tests: Unit Tests (and E2E Tests, if appropriate)
  • Comprehensive Commit Messages
  • Links to related GitHub Issue(s)

Always review AI generated responses prior to use.
AI-assisted response via openshift-developer plugin

Phase 1/7 of OPRUN-4738: remove object-controller's dependency on
operator-controller's internal metadata package.

Move the label constants into internal/shared/labels and update imports
in both controllers and their tests. Generalize the object-controller
comments to describe owners rather than ClusterExtensions.

Review focus: the package move and mechanical import changes. Metadata
keys and reconciliation behavior are unchanged. No generated files.

Refs: OPRUN-4738
Signed-off-by: Fabricio Aguiar <fabricio.aguiar@gmail.com>

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
Add a dedicated manager with a ClusterObjectSet-only scheme and regression coverage. Reuse referenced Secret reads within each reconciliation, retry transient read failures, and show numeric revision status when no bundle version is present.

Signed-off-by: Fabricio Aguiar <fabricio.aguiar@gmail.com>

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
Add object-controller to local and Linux builds, Docker image creation, KIND loading, and multi-architecture GoReleaser output.

Refs: OPRUN-4774
Signed-off-by: Fabricio Aguiar <fabricio.aguiar@gmail.com>

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
Move ClusterObjectSet CRD and deployment ownership to object-controller. Remove the embedded ClusterObjectSet manager from operator-controller, and update local development, installation, and documentation paths.

Add chart rendering coverage for standalone, Boxcutter, downstream, and PodDisruptionBudget configurations.

Refs: OPRUN-4775
Signed-off-by: Fabricio Aguiar <fabricio.aguiar@gmail.com>

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
Include the standalone object-controller deployment, RBAC, networking, metrics, and disruption budget in the generated experimental installation manifests.

Refs: OPRUN-4775
Signed-off-by: Fabricio Aguiar <fabricio.aguiar@gmail.com>

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
The standalone controller is the only ClusterObjectSet reconciler after the cutover. Reject an explicit objectController.enabled=false when operator-controller has an effective BoxcutterRuntime gate so Helm cannot render an installation without a reconciler or CRD.

Cover the invalid combination and the inactive-gate boundary in chart tests.

Refs: OPRUN-4775
Signed-off-by: Fabricio Aguiar <fabricio.aguiar@gmail.com>

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
Signed-off-by: Fabricio Aguiar <fabricio.aguiar@gmail.com>

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
@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 Sep 24, 2026
@openshift-ci

openshift-ci Bot commented Sep 24, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign joelanford for approval. For more information see the Code Review Process.

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

Details 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

@coderabbitai

coderabbitai Bot commented Sep 24, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@netlify

netlify Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for olmv1 ready!

Name Link
🔨 Latest commit 2e4d233
🔍 Latest deploy log https://app.netlify.com/projects/olmv1/deploys/6ab55cdef8fe8500088cd3bd
😎 Deploy Preview https://deploy-preview-2950--olmv1.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

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

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant