Skip to content

OCPBUGS-105802: Use the correct v1 mcfg api for OSImageStream during ignition - #9283

Merged
sdodson merged 2 commits into
openshift:mainfrom
bennerv:ocpbugs-105802-ignition-osimagestream-api
Aug 14, 2026
Merged

OCPBUGS-105802: Use the correct v1 mcfg api for OSImageStream during ignition#9283
sdodson merged 2 commits into
openshift:mainfrom
bennerv:ocpbugs-105802-ignition-osimagestream-api

Conversation

@bennerv

@bennerv bennerv commented Aug 12, 2026

Copy link
Copy Markdown
Member

What this PR does / why we need it:

fixes the selection of rhel-9 vs. rhel-10 in OCP 5.0 by using the api that machineconfig understands for OS Stream.

Which issue(s) this PR fixes:

Fixes OCPBUGS-105802

Special notes for your reviewer:

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

Summary by CodeRabbit

Bug Fixes

  • Updated generated OS image stream manifests to use the stable machineconfiguration.openshift.io/v1 API version.
  • Improved compatibility for RHEL 9 and RHEL 10 image stream configurations.
  • Added validation to ensure guest-cluster nodes run the OS version selected by their image stream.
  • Expanded verification for default and explicitly configured image stream settings, including readiness checks and OS version matching.

@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-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Aug 12, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@bennerv: This pull request references Jira Issue OCPBUGS-105802, which is invalid:

  • expected the bug to target the "5.0.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

What this PR does / why we need it: fixes the selection of rhel-9 vs. rhel-10 in OCP 5.0 by using the api that machineconfig understands for OS Stream.

Which issue(s) this PR fixes:

Fixes OCPBUGS-105802

Special notes for your reviewer:

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

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/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. label Aug 12, 2026
@openshift-ci openshift-ci Bot added do-not-merge/needs-area area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release labels Aug 12, 2026
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: abe3d984-bba6-4cf4-b9a6-15ca3535ba13

📥 Commits

Reviewing files that changed from the base of the PR and between 27acbdc and 2365d9d.

📒 Files selected for processing (1)
  • test/e2e/v2/tests/nodepool_osimagestream_test.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • test/e2e/v2/tests/nodepool_osimagestream_test.go

📝 Walkthrough

Walkthrough

The controller now generates OSImageStream manifests with API version machineconfiguration.openshift.io/v1. Unit tests cover RHEL 9 and RHEL 10 outputs. End-to-end tests resolve default and alternate streams, wait for ready nodes, and verify that node RHCOS major versions match the selected stream.

Sequence Diagram(s)

sequenceDiagram
  participant LifecycleTest
  participant NodePool
  participant GuestClusterNodes
  LifecycleTest->>NodePool: Resolve OSImageStream
  LifecycleTest->>NodePool: Wait for expected ready replicas
  LifecycleTest->>GuestClusterNodes: List hosted-cluster nodes
  GuestClusterNodes-->>LifecycleTest: Return RHCOS image strings
  LifecycleTest->>LifecycleTest: Parse and compare RHCOS major versions
Loading

Suggested reviewers: enxebre, nirshal


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error, 1 warning)

Check name Status Explanation Resolution
No-Sensitive-Data-In-Logs ❌ Error The new GinkgoWriter log emits node.Name, a cluster node identifier that can be an internal hostname, with NodePool and OS details. Remove node.Name from test output and log only the RHCOS major version and stream; keep detailed node identifiers out of CI logs.
Test Structure And Quality ⚠️ Warning The PR-added Ginkgo tests contain generic assertions such as Expect(err).NotTo(HaveOccurred()) and an unmessaged client Get, which violate the required diagnostic messages. Add operation-specific messages to every new assertion, including HostedCluster retrieval, stream resolution, and NodePool client Get/List failures.
✅ Passed checks (9 passed)
Check name Status Explanation
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 The added Ginkgo title is a static descriptive string; it contains no node, namespace, timestamp, IP, UUID, or other run-dependent value.
Topology-Aware Scheduling Compatibility ✅ Passed The production diff only changes the OSImageStream API version. The added e2e test adds no topology scheduling constraints; affinity, toleration, and MaxUnavailable settings are not introduced.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The added Ginkgo test uses management and hosted-cluster Kubernetes clients, labels, and RHCOS version regexes; it adds no IPv4 literals, IP parsing, URL construction, or public connectivity.
No-Weak-Crypto ✅ Passed The PR diff changes OSImageStream API and e2e logic; precise added-line scans found no MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB, custom crypto, or secret comparisons.
Container-Privileges ✅ Passed The inspected pull-request diff changes OS image stream test logic only and introduces no privileged containers, host namespaces, SYS_ADMIN, root, or allowPrivilegeEscalation settings.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: using the correct stable v1 MachineConfig API for OSImageStream during ignition.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@bennerv

bennerv commented Aug 12, 2026

Copy link
Copy Markdown
Member Author

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Aug 12, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@bennerv: This pull request references Jira Issue OCPBUGS-105802, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

/jira refresh

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

Copy link
Copy Markdown

@bennerv: This pull request references Jira Issue OCPBUGS-105802, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

What this PR does / why we need it: fixes the selection of rhel-9 vs. rhel-10 in OCP 5.0 by using the api that machineconfig understands for OS Stream.

Which issue(s) this PR fixes:

Fixes OCPBUGS-105802

Special notes for your reviewer:

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

Summary by CodeRabbit

  • Bug Fixes
  • Updated generated OS image stream manifests to use the stable machineconfiguration.openshift.io/v1 API version.
  • Ensures compatibility for both RHEL 9 and RHEL 10 image stream configurations.

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.

@bennerv
bennerv force-pushed the ocpbugs-105802-ignition-osimagestream-api branch 2 times, most recently from 352a528 to fe3bf07 Compare August 12, 2026 02:20
@bennerv

bennerv commented Aug 12, 2026

Copy link
Copy Markdown
Member Author

/hold for personal review.

@openshift-ci openshift-ci Bot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. area/testing Indicates the PR includes changes for e2e testing labels Aug 12, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/e2e/v2/tests/nodepool_osimagestream_test.go`:
- Around line 326-330: Update the comment for verifyNodeOSMatchesStream to
replace “guest cluster” with “hosted cluster,” preserving the rest of the
explanation and required V2 terminology.
- Around line 365-366: Rename the Ginkgo test description inside
NodePoolOSImageStreamNodeOSVerificationTest to follow the required “When ... it
should ...” format, while preserving its existing intent about nodes matching
the resolved osImageStream OS version.
- Around line 307-310: In the test flow surrounding verifyNodeOSMatchesStream,
call ValidateHostedClusterClient() after ValidateHostedCluster() and before
verifying node OS images. Keep the existing node validation and expectedStream
checks unchanged.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 612402ec-6f14-4892-941f-429e0988239a

📥 Commits

Reviewing files that changed from the base of the PR and between c0ea1e0 and fe3bf07.

📒 Files selected for processing (1)
  • test/e2e/v2/tests/nodepool_osimagestream_test.go

Comment thread test/e2e/v2/tests/nodepool_osimagestream_test.go
Comment thread test/e2e/v2/tests/nodepool_osimagestream_test.go
Comment thread test/e2e/v2/tests/nodepool_osimagestream_test.go Outdated
@bennerv
bennerv force-pushed the ocpbugs-105802-ignition-osimagestream-api branch from fe3bf07 to 2ff2425 Compare August 12, 2026 02:38
@csrwng csrwng added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 12, 2026
@csrwng

csrwng commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

/test security

@codecov

codecov Bot commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 45.73%. Comparing base (2ac5e2f) to head (a39839a).
⚠️ Report is 17 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #9283   +/-   ##
=======================================
  Coverage   45.73%   45.73%           
=======================================
  Files         781      781           
  Lines       97837    97837           
=======================================
  Hits        44744    44744           
  Misses      50024    50024           
  Partials     3069     3069           
Files with missing lines Coverage Δ
...ition-server/controllers/local_ignitionprovider.go 42.87% <100.00%> (ø)
Flag Coverage Δ
cmd-support 38.83% <ø> (ø)
cpo-hostedcontrolplane 47.98% <ø> (ø)
cpo-other 45.93% <ø> (ø)
hypershift-operator 57.00% <ø> (ø)
other 34.38% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@bennerv

bennerv commented Aug 12, 2026

Copy link
Copy Markdown
Member Author

Reason for the hold:

  • I'm not sure which e2e is actually running to test this since it's still behind a tech preview feature
  • I don't think there's a test that exercises both rhel9 and rhel10 dual streams on 5.0 to confirm the difference between nodepool versions.

need to investigate more.

@jparrill

Copy link
Copy Markdown
Contributor

/cc

@openshift-ci
openshift-ci Bot requested a review from jparrill August 13, 2026 10:58
@ironcladlou

Copy link
Copy Markdown
Contributor

This needs rebased to pick up the changes from #9229, the current code won't compile...

@jparrill jparrill left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Dropped some comments on the e2e test. Core fix LGTM — correct and minimal. Thanks!

Comment on lines +382 to +388
resolvedStream := pool.Status.OSImageStream.Name
if resolvedStream == "" {
resolvedStream = pool.Spec.OSImageStream.Name
}
if resolvedStream == "" {
resolvedStream = hyperv1.OSImageStreamRHEL10
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The resolution order here is inverted from what the controller does in GetRHELStreamForBootImage — the controller checks Spec first (user's explicit choice wins), then Status (preserve what's running), then derives from version. This checks Status first, then Spec, then hardcodes RHEL10.

This produces wrong expectations in at least two concrete scenarios:

  • User sets spec=rhel-10, status=rhel-9: controller resolves rhel-10, but this test would verify against rhel-9
  • Both empty on OCP 4.x: controller resolves rhel-9 (version-derived), but this assumes rhel-10

I'd suggest either calling the controller's resolution function directly, or failing explicitly if the stream can't be determined:

resolvedStream := pool.Spec.OSImageStream.Name
if resolvedStream == "" {
    resolvedStream = pool.Status.OSImageStream.Name
}
Expect(resolvedStream).NotTo(BeEmpty(),
    "could not determine osImageStream from NodePool %s spec or status", pool.Name)


pool := &hyperv1.NodePool{}
Expect(testCtx.MgmtClient.Get(ctx, crclient.ObjectKeyFromObject(defaultNP), pool)).
To(Succeed(), "failed to get NodePool %s", defaultNP.Name)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Unlike NodePoolOSImageStreamDefaultStatusTest above — which polls with osImageStreamSetPredicate() before reading status — this does a single MgmtClient.Get() without waiting. If the controller hasn't reconciled yet, status.osImageStream.Name is empty and the fallback chain kicks in with wrong assumptions.

Adding an EventuallyObject wait for status.osImageStream.Name to be non-empty before reading it would make this reliable — same pattern already used in the test above.

Comment on lines +323 to +325
default:
return "9"
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nit: this silently returns "9" for any unknown stream. Per the controller's resolution table, unknown streams produce an error — they shouldn't map to a valid version. A Fail() here would catch future stream additions that aren't handled:

default:
    Fail(fmt.Sprintf("unexpected osImageStream: %s", stream))
    return ""

@bennerv

bennerv commented Aug 13, 2026

Copy link
Copy Markdown
Member Author

/hold cancel

@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 Aug 13, 2026

@jparrill jparrill left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Dropped some more comments. Thanks!

@jparrill jparrill left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Dropped some more comments. Thanks!

@@ -49,6 +50,7 @@ func RegisterNodePoolOSImageStreamLifecycleTests(getTestCtx internal.TestContext
NodePoolOSImageStreamRHEL10RejectionTest(getTestCtx)
NodePoolOSImageStreamRHEL10RuncRejectionTest(getTestCtx)
NodePoolOSImageStreamExplicitDefaultNoRolloutTest(getTestCtx)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This will fail deterministically. ExplicitDefaultNoRolloutTest is registered at line 51 and patches spec.osImageStream on the default NodePool. Since the field is immutable (CEL rejects removal), by the time NodeOSVerificationTest runs, Expect(defaultNP.Spec.OSImageStream.Name).To(BeEmpty()) will always fail.

Two options: (1) register NodeOSVerificationTest before ExplicitDefaultNoRolloutTest, or (2) remove the BeEmpty() assertion and handle the case where spec is already set — read whatever stream is there (spec or status) and verify against that.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I put it at the top, if it belongs lower down let me know.

fmt.Sprintf("NodePool %s/%s to have ready nodes", np.Namespace, np.Name),
func(pollCtx context.Context) (*hyperv1.NodePool, error) {
pool := &hyperv1.NodePool{}
err := testCtx.MgmtClient.Get(pollCtx, crclient.ObjectKeyFromObject(np), pool)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This only checks the first node. For a multi-replica NodePool, a partial OS mismatch on other nodes would go undetected. All nodes share the same ignition config so the risk is low, but iterating all items costs almost nothing:

for _, node := range nodeList.Items {
    // ... regex match and assert
}

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Updated. Also had to add a new predicate for all nodes ready since the nodesInfoPopulatedPredicate only checks for a single node. I'm not sure when the osInfo on the node's status is populated, but just in case we wait until they're ready.

switch stream {
case hyperv1.OSImageStreamRHEL10:
return "10", nil
case hyperv1.OSImageStreamRHEL9:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Missing GinkgoHelper(). Without it, test failures inside this function report line numbers here rather than at the caller. Other helpers in this file (buildTestNodePool, getDefaultNodePool, cleanupNodePool) all use it.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'm confused, the function returns error and makes callers deal with it, GinkgoHelper would only apply if the function tried to do things like Expect internally (which this one doesn't), maybe you meant to comment elsewhere?

@bennerv bennerv Aug 13, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I added it (since there's no harm in adding it), but agree with @ironcladlou .
I also put it in verifyNodeOSMatchesStream which has ginkgo assertions. If it doesn't belong there, let me know. It shouldn't be in that function. Ignore that

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@bennerv @jparrill be aware that calling GinkgoHelper() has its own side effects and assumptions which can lead to surprising behavior. If you call it and then call e.g. Expect(), the assertion happens in the Default context, which means if you use that helper within an Eventually() it's not going to use the correct nested assertor instance (which is provided in the Eventually closure) and will lead to subtle issues. Although GitHub is making it impossible to view now, we had a lot of discussion about approaches to deal with this on #9229 which originally introduced some helpers along these lines, but coming up with a friendly UX needed more consensus building and so I just punted.

All that is to say I wouldn't just add it without at least a comment that the helper should not be used within an Eventually() (for example)...

Eventually(func(g Gomega) { // inside here, your helper needs to call g.Expect(), not the implicit Default Gomega)

@bennerv bennerv Aug 13, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@ironcladlou I wasn't aware of the implictaions, apologies and thanks for the explanation. If you're good with it (since the function errors are meant to be handled by the caller), I removed it from the helper function.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

no problem and thanks, I wasn't familiar with the nuances either until that PR, just wanted to share what I learned to prevent any surprises

The MCO removed v1alpha1 support for OSImageStream in
openshift/machine-config-operator#6076. Update the ignition server
to render the CR with the v1 API version so the MCO bootstrap
processes it correctly.
@bennerv
bennerv force-pushed the ocpbugs-105802-ignition-osimagestream-api branch from 27acbdc to 2365d9d Compare August 13, 2026 18:29
@bennerv

bennerv commented Aug 13, 2026

Copy link
Copy Markdown
Member Author

/test e2e-v2-aws-techpreview-osimagestream

…dePools

Expand NodePoolOSImageStreamNodeOSVerificationTest to create dedicated
NodePools for each osImageStream value and verify nodes boot with the
correct RHCOS version:

1. Default NodePool (no osImageStream set) — validates implicit default
2. New 1-replica NodePool with osImageStream=rhel-9
3. New 1-replica NodePool with osImageStream=rhel-10

Move the test from status (read-only) to lifecycle registration since it
now creates additional NodePools. Also fix helper signatures to match
current TestContext API (GetHostedCluster returns error,
GetHostedClusterClient requires hc argument).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@bennerv
bennerv force-pushed the ocpbugs-105802-ignition-osimagestream-api branch from 2365d9d to a39839a Compare August 13, 2026 18:56
@openshift-ci

openshift-ci Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

Approval requirements bypassed by manually added approval.

This pull-request has been approved by: bennerv

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

The pull request process is described 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

@bennerv

bennerv commented Aug 13, 2026

Copy link
Copy Markdown
Member Author

/test e2e-v2-aws-techpreview-osimagestream

@jparrill

Copy link
Copy Markdown
Contributor

/lgtm

@jparrill

Copy link
Copy Markdown
Contributor

/verified by e2e passing

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Aug 14, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aks-4-22
/test e2e-aws-4-22
/test e2e-aks
/test e2e-aws
/test e2e-aws-upgrade-hypershift-operator
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws
/test e2e-v2-azure-self-managed
/test e2e-v2-gke

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Aug 14, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@jparrill: This PR has been marked as verified by e2e passing.

Details

In response to this:

/verified by e2e passing

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.

@jparrill

Copy link
Copy Markdown
Contributor

/retest-required

@cwbotbot

cwbotbot commented Aug 14, 2026

Copy link
Copy Markdown

Test Results

e2e-aws

e2e-aks

Failed Tests

Total failed tests: 3

  • TestNodePool
  • TestNodePool/HostedCluster0
  • TestNodePool/HostedCluster0/ValidateHostedCluster

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 82025a1 and 2 for PR HEAD a39839a in total

@sdodson

sdodson commented Aug 14, 2026

Copy link
Copy Markdown
Member

The tests are broken on version skew issues.
/override ci/prow/e2e-aks ci/prow/e2e-v2-azure-self-managed
/cherry-pick release-5.0

@openshift-cherrypick-robot

Copy link
Copy Markdown

@sdodson: once the present PR merges, I will cherry-pick it on top of release-5.0 in a new PR and assign it to you.

Details

In response to this:

The tests are broken on version skew issues.
/override ci/prow/e2e-aks ci/prow/e2e-v2-azure-self-managed
/cherry-pick release-5.0

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 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

@sdodson: Overrode contexts on behalf of sdodson: ci/prow/e2e-aks, ci/prow/e2e-v2-azure-self-managed

Details

In response to this:

The tests are broken on version skew issues.
/override ci/prow/e2e-aks ci/prow/e2e-v2-azure-self-managed
/cherry-pick release-5.0

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 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

@bennerv: all tests passed!

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.

@sdodson
sdodson merged commit 286847b into openshift:main Aug 14, 2026
43 of 44 checks passed
@openshift-ci-robot

Copy link
Copy Markdown

@bennerv: Jira Issue Verification Checks: Jira Issue OCPBUGS-105802
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-105802 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Details

In response to this:

What this PR does / why we need it:

fixes the selection of rhel-9 vs. rhel-10 in OCP 5.0 by using the api that machineconfig understands for OS Stream.

Which issue(s) this PR fixes:

Fixes OCPBUGS-105802

Special notes for your reviewer:

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

Summary by CodeRabbit

Bug Fixes

  • Updated generated OS image stream manifests to use the stable machineconfiguration.openshift.io/v1 API version.
  • Improved compatibility for RHEL 9 and RHEL 10 image stream configurations.
  • Added validation to ensure guest-cluster nodes run the OS version selected by their image stream.
  • Expanded verification for default and explicitly configured image stream settings, including readiness checks and OS version matching.

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-cherrypick-robot

Copy link
Copy Markdown

@sdodson: new pull request created: #9319

Details

In response to this:

The tests are broken on version skew issues.
/override ci/prow/e2e-aks ci/prow/e2e-v2-azure-self-managed
/cherry-pick release-5.0

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.

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. area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release area/testing Indicates the PR includes changes for e2e testing jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants