Skip to content

OPRUN-4691: Promote OLMLifecycleAndCompatibility feature gate to Default#2920

Open
perdasilva wants to merge 1 commit into
openshift:masterfrom
perdasilva:promote-olm-lifecycle-default
Open

OPRUN-4691: Promote OLMLifecycleAndCompatibility feature gate to Default#2920
perdasilva wants to merge 1 commit into
openshift:masterfrom
perdasilva:promote-olm-lifecycle-default

Conversation

@perdasilva

@perdasilva perdasilva commented Jul 9, 2026

Copy link
Copy Markdown

Summary

  • Enables the OLMLifecycleAndCompatibility feature gate in the Default feature set for SelfManaged clusters
  • Previously this gate was only enabled in TechPreviewNoUpgrade and DevPreviewNoUpgrade
  • Updates features/features.go, generated feature gate manifests, and features.md

5 test rule exception request

We are requesting an exception to the 5-It-block requirement for this test suite. The test covers five distinct scenarios but structures them as g.By steps within a single It block. The reason is architectural, not a coverage shortcut.

Scenarios covered

  1. Valid schema + package → returns the expected custom schema FBC blobs (multiple results, correct schema/package/name fields)
  2. Valid schema + nonexistent package → returns empty stream
  3. Nonexistent schema → returns empty stream
  4. Valid schema + empty package → returns packageless (global) custom schema blobs
  5. Missing x-acknowledge-experimental header → returns empty stream (experimental API contract enforced)

Why a single It block

Meaningful functional coverage of this endpoint requires a catalog with known, controlled content. An existing cluster catalog cannot substitute: once this feature ships to Default, real catalogs will contain lifecycle data, making any query result non-deterministic and unassertable.

Building that controlled catalog image in-cluster via a BuildConfig takes approximately 22 seconds. Splitting into five It blocks would trigger a separate image build per test because:

  • Tests run in parallel across nodes
  • BeforeEach runs independently per node, so shared setup is not possible
  • BeforeAll is not an option: in Ginkgo's parallel runner it executes once per process, not once globally — with N parallel nodes we get N image builds

The single It builds the image once, creates one CatalogSource, opens one port-forward, and exercises all five scenarios against the same running pod. Coverage is equivalent to five separate tests.

The only genuinely parallelizable addition would be an input-validation test sending syntactically invalid schema/package names against an existing catalog pod (the rejection occurs before catalog lookup and is deterministic regardless of catalog content). That path is already covered by unit tests in operator-registry, so we have not duplicated it here at the E2E layer.

Test plan

  • Verify make verify passes
  • Confirm feature gate is listed as enabled in Default for SelfManaged in features.md
  • Validate generated payload manifests reflect the promotion

🤖 Generated with Claude Code

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Hello @perdasilva! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This change enables OLMLifecycleAndCompatibility for the Default and OKD feature sets on SelfManagedHA. features/features.go adds inDefault() and inOKD() to the gate’s enablement conditions. The corresponding SelfManagedHA-Default and SelfManagedHA-OKD payload manifests move the feature gate from disabled to enabled. features.md updates the feature-gate table to mark the Default on SelfManagedHA column as enabled and reorders one adjacent row.

Suggested reviewers: JoelSpeed

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed No Ginkgo test titles were added or changed; the PR only touches markdown, feature-gate config, and manifests.
Test Structure And Quality ✅ Passed No Ginkgo test files or test logic were changed; the PR only updates feature-gate docs, manifests, and enablement code.
Microshift Test Compatibility ✅ Passed No Ginkgo/e2e tests were added; only feature-gate docs/manifests changed, so no MicroShift-incompatible test issues.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PASS: The PR only updates feature-gate config/docs/manifests; no Ginkgo e2e tests or topology assumptions were added, so SNO review is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed Only feature-gate metadata changed; no manifests, controllers, affinity, selectors, PDBs, or spread constraints were added.
Ote Binary Stdout Contract ✅ Passed Changed files only adjust feature-gate enablement/docs/manifests; features.go has no stdout/logging calls and no process-level entrypoints were touched.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PASS: The patch only updates feature-gate docs, code, and manifests; no new Ginkgo e2e tests or network/IP logic were added.
No-Weak-Crypto ✅ Passed PR only changes feature-gate enablement/docs/manifests; no weak crypto, custom crypto, or secret/token comparisons were added.
Container-Privileges ✅ Passed The PR only changes feature-gate metadata/manifests; no privileged, hostPID/Network/IPC, SYS_ADMIN, allowPrivilegeEscalation, or root-run settings appear.
No-Sensitive-Data-In-Logs ✅ Passed No logging code was added or modified; the diff only changes feature-gate enablement and manifest ordering, and added lines contain no sensitive strings.
Title check ✅ Passed The title clearly states the main change: promoting OLMLifecycleAndCompatibility to Default.
Description check ✅ Passed The description is directly related and accurately summarizes the feature-gate promotion and related updates.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci openshift-ci Bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Jul 9, 2026
@openshift-ci openshift-ci Bot requested review from JoelSpeed and everettraven July 9, 2026 07:43
@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

[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 deads2k 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

@perdasilva

Copy link
Copy Markdown
Author

/hold

@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 Jul 9, 2026
@perdasilva perdasilva changed the title Promote OLMLifecycleAndCompatibility feature gate to Default OPRUN-4691: Promote OLMLifecycleAndCompatibility feature gate to Default Jul 9, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 9, 2026

Copy link
Copy Markdown

@perdasilva: This pull request references OPRUN-4691 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Enables the OLMLifecycleAndCompatibility feature gate in the Default feature set for SelfManaged clusters
  • Previously this gate was only enabled in TechPreviewNoUpgrade and DevPreviewNoUpgrade
  • Updates features/features.go, generated feature gate manifests, and features.md

Test plan

  • Verify make verify passes
  • Confirm feature gate is listed as enabled in Default for SelfManaged in features.md
  • Validate generated payload manifests reflect the promotion

🤖 Generated with Claude Code

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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 9, 2026
Enable the OLMLifecycleAndCompatibility feature gate in the Default
feature set for SelfManaged clusters. Previously this gate was only
enabled in TechPreviewNoUpgrade and DevPreviewNoUpgrade.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Per G. da Silva <pegoncal@redhat.com>
@perdasilva perdasilva force-pushed the promote-olm-lifecycle-default branch from 6fc0456 to a1e80c1 Compare July 9, 2026 08:56
@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

@perdasilva: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/verify-feature-promotion a1e80c1 link true /test verify-feature-promotion

Full PR test history. Your PR dashboard.

Details

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. I understand the commands that are listed here.

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

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants