[release-5.0] CNTRLPLANE-3871: promote OSStreams feature gate to Default - #9372
Conversation
Bumps openshift/api to the merge commit of api#2997, which applies the OSStreams feature gate graduation on release-5.0. Signed-off-by: Juan Manuel Parrilla Madrid <jparrill@redhat.com>
Enable OSStreams in all 4 Default feature gate YAMLs, add configv1.Default to feature gate registration, regenerate NodePool CRD with osImageStream fields and CEL validation. Add OSStreams to TestAllHypershiftOperatorFeatureGates expected maps (Default=true, TechPreview=true, DevPreview=false) and to TestFeatureGateConstants to prevent accidental revert. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Juan Manuel Parrilla Madrid <jparrill@redhat.com>
Remove status preservation from GetRHELStreamForBootImage, aligning it with GetRHELStream. Resolution order: spec, FG check, version-derived. Also removes debug log. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Juan Manuel Parrilla Madrid <jparrill@redhat.com>
Remove [FeatureGate:OSStreams] annotations, rename [Feature:NodePoolOSImageStream] to [Feature:OSStreams], update upgrade test to expect version-derived stream after OCP 5.0, remove stale TODO(CNTRLPLANE-3871), register upgrade verification in lifecycle suite, add informational osImageStream log to v1 upgrade test, derive expected stream from target version instead of hardcoding. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Juan Manuel Parrilla Madrid <jparrill@redhat.com>
New NodePoolMajorVersionUpgradeTest (v1 e2e) that upgrades from OCP 4.22 to 5.0 and asserts status.osImageStream = rhel-10. Auto-skips on same-major upgrades. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Juan Manuel Parrilla Madrid <jparrill@redhat.com>
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
@jparrill: This pull request references CNTRLPLANE-3871 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 either version "5.0.0." or "openshift-5.0.0.", but it targets "openshift-5.1" instead. DetailsIn response to this:
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. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
/hold Dependency PR #9328 |
|
/approve for API |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: JoelSpeed, jparrill The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/test images |
|
/pipeline required |
|
Scheduling tests matching the |
|
/test e2e-v2-aws-techpreview-osimagestream |
|
/lgtm |
|
/hold cancel |
|
/pipeline required |
|
Scheduling tests matching the |
|
/verified by E2E passing + OSStream tests |
|
@jparrill: This PR has been marked as verified by DetailsIn response to this:
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. |
|
/retest-required |
|
/test e2e-aws |
|
/test e2e-aks |
|
/override ci/prow/e2e-aws-upgrade-hypershift-operator Justification: #9328 (comment) |
|
@jparrill: Overrode contexts on behalf of jparrill: ci/prow/e2e-aws-upgrade-hypershift-operator DetailsIn response to this:
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. |
|
@jparrill: Overrode contexts on behalf of jparrill: ci/prow/e2e-aws-upgrade-hypershift-operator DetailsIn response to this:
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. |
|
/lgtm |
|
Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage. |
|
/test e2e-v2-azure-self-managed |
|
/test e2e-aws-4-22 |
|
/override ci/prow/e2e-aws-upgrade-hypershift-operator Justification: #9328 (comment) |
|
@jparrill: Overrode contexts on behalf of jparrill: ci/prow/e2e-aws-upgrade-hypershift-operator DetailsIn response to this:
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. |
|
/test e2e-kubevirt-aws-ovn-reduced |
|
/retest-required |
|
/test e2e-v2-azure-self-managed |
|
/test e2e-v2-gke |
|
@jparrill: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions 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. |
Summary
Graduate the
OSStreamsfeature gate fromTechPreviewNoUpgradetoDefault, enabling dual-stream RHEL 9/10 NodePool boot image resolution without requiring TechPreview.Key behavior change: upgrading a NodePool from OCP 4.x to 5.0+ now switches nodes to rhel-10 (version-derived). Only an explicit
spec.osImageStreampin overrides version-derived resolution. Upgrading the HyperShift Operator alone never causes a NodePool rollout — version-derived resolution returns rhel-9 for all OCP <5.0 NodePools regardless of the feature gate state.Commits
build: bump openshift/api to 3db6c4b03286— vendor update to the merge commit of openshift/api#2993 (OSStreams graduation re-applied after revert openshift/api#2989)feat: promote OSStreams feature gate to Default— enable OSStreams in all 4 Default feature gate YAMLs, addconfigv1.Defaultto feature gate registration, regenerate NodePool CRD withosImageStreamfields and CEL validationfeat: resolve RHEL stream from release version on upgrade— remove status preservation fromGetRHELStreamForBootImage, aligning it withGetRHELStream. Resolution order: spec → FG check → version-derivedtest: update OSImageStream tests for graduation— remove[FeatureGate:OSStreams]annotations, rename[Feature:NodePoolOSImageStream]to[Feature:OSStreams], update upgrade test to expect rhel-10 after OCP 5.0, remove staleTODO([CNTRLPLANE-3871](https://redhat.atlassian.net/browse/CNTRLPLANE-3871)), register upgrade verification in lifecycle suite, fix pre-existing Gherkin naming violations inaws_test.gotest: add major-version upgrade test for osImageStream— newNodePoolMajorVersionUpgradeTest(v1 e2e) that upgrades 4.22→5.0 and assertsstatus.osImageStream = rhel-10. Auto-skips on same-minor upgrades.fix: only expect crun runtime handler on RHEL-10 nodes— guard thecrunRuntimeHandler assertion in e2e behind a RHEL-10 check, since RHEL-9 nodes useruncand don't advertisecrun.test: use explicit Azure Marketplace image for RHEL-10 OS verification— the OCP 5.0 release payload does not yet include RHEL-10 Azure Marketplace images (no-purchase-planis empty for rhel-10). This commit: (a) skips default NP OS verification on Azure when the expected stream is rhel-10, (b) creates a dedicated rhel-10 NodePool with explicitaro_5-0_x64_gen2marketplace image to verify RHEL-10 boots correctly, (c) movesnodepool-osimagestreamtests from the private cluster test group to the public cluster — the private cluster API is unreachable from the test pod (dial tcp 10.0.0.4:443: i/o timeout), andverifyNodeOSMatchesStreamneeds hosted cluster API access to list nodes. Tracked by openshift/installer#10764; remove the workaround when that PR merges.Customer scenario resolution table
All scenarios assume the customer journey: upgrade HO first, then (optionally) upgrade NodePool to OCP 5.x.
Key invariants:
GA product impact
StreamForName()from the release payload metadata. No platform-specific impact.spec.osImageStream: rhel-9is the escape hatch if they need to stay on rhel-9 temporarily. This is documented in the enhancement.Related
Test plan
make verifypassesTestGetRHELStreamForBootImage+TestValidateOSImageStream+TestUsesRuncRuntimego build -tags e2e ./test/e2e/...+go build -tags e2ev2 ./test/e2e/v2/...)status.osImageStreamswitches from rhel-9 to rhel-10 (verification comment)/test e2e-aws-major-version-upgrade(requires CNTRLPLANE-3871: add major-version-upgrade presubmit for HyperShift OSStreams graduation release#83595 merged first)e2e-aws(existing upgrade tests unaffected — major-version test auto-skips on same-minor)e2e-aws-upgrade-hypershift-operator— expected failure explained: pre-upgrade HO (FG off) creates NP on OCP 5.1 with rhel-9, post-upgrade HO (FG on) resolves rhel-10. This is a CI-only scenario — customers cannot have NPs on OCP 5.x before upgrading HO. Will pass once this PR merges.🤖 Generated with Claude Code