Skip to content

OCPBUGS-86978: modify tests to use rhel10 as the default stream#6167

Open
sergiordlr wants to merge 1 commit into
openshift:mainfrom
sergiordlr:use_rhel10_as_default_stream_in_tests
Open

OCPBUGS-86978: modify tests to use rhel10 as the default stream#6167
sergiordlr wants to merge 1 commit into
openshift:mainfrom
sergiordlr:use_rhel10_as_default_stream_in_tests

Conversation

@sergiordlr

@sergiordlr sergiordlr commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

- What I did
Modify the tests so that they check that the default stream is rhel10 and not rhel9

4.23 and 5.0 have the same code base, so we need to support both cases. In 5.0 the default stream will be rhel10, and in 4.23 the fault stream will be rhel9.

Trying to save some time we will only execute stream changes starting with the default value (10 -> 9 in 5.0, and 9 -> 10 in 4.23), we will skip the test cases testing the other way around.

Bundle:
Fix the e2e test to use the right stream for rhel10

- How to verify it
All tests should pass

Summary by CodeRabbit

Summary by CodeRabbit

  • Tests
    • Updated disruptive OS image stream transition scenarios to reverse the RHEL stream direction (RHEL10 ↔ RHEL9), including refreshed identifiers, revised transition parameters, and updated skip logic.
    • Updated default OS image stream handling to use the cluster’s effective default dynamically (with RHEL10 as the baseline), and adjusted related assertions.
  • Build/Images
    • Updated the shared cowsay Containerfile to move the CentOS base stage from stream9 to stream10 and adjust repo stream rewriting and rpm-ostree behavior accordingly.

@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 jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. labels Jun 10, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@sergiordlr: This pull request references Jira Issue OCPBUGS-86978, 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)

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

Details

In response to this:

- What I did
Modify the tests so that they check that the default stream is rhel10 and not rhel9

- How to verify it
All tests should pass

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.

@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown

Walkthrough

This PR updates the machine-config-operator test suite to reflect RHEL10 as the default OS image stream. New helper functions enable dynamic discovery of the cluster-default OS image stream, the DefaultOSImageStream constant is changed from RHEL9 to RHEL10, three disruptive tests are reversed to validate migrations away from the new default, and the container build Containerfile is updated to use stream10.

Changes

RHEL10 Default OS Image Stream Upgrade

Layer / File(s) Summary
Dynamic default OS stream helpers
test/extended-priv/mco_osimagestream.go
Exported helpers GetDefaultOSImageStream and SkipIfDefaultOSImageStream are added to compute the cluster-default OS image stream dynamically based on cluster version. GetEffectiveOsImageStream is updated to use GetDefaultOSImageStream when the OSImageStream resource does not exist.
Default OS image stream constant and validation test
test/extended-priv/const.go, test/extended-priv/mco_osimagestream.go
DefaultOSImageStream constant is updated from OSImageStreamRHEL9 to OSImageStreamRHEL10. The default-stream validation test is updated to use GetDefaultOSImageStream instead of the static constant.
Disruptive test reversals for RHEL10 baseline
test/extended-priv/mco_osimagestream.go
Three disruptive test groups are reversed to validate migrations away from RHEL10: realtime kernel, 64k pages kernel, and extensions persistence tests now check RHEL10 → RHEL9 transitions instead of RHEL9 → RHEL10. Tests are updated with swapped stream arguments, new Polarion IDs, and SkipIfDefaultOSImageStream conditions for RHEL9.
Container image build update
test/e2e-ocl-shared/Containerfile.cowsay
CentOS base stage updated from stream9 to stream10 with sed substitution logic adjusted to rewrite 9-stream to 10-stream references. The rpm-ostree command is modified to use override replace --experimental with failure tolerance via || true.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested labels

verified

Suggested reviewers

  • djoshy
🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Microshift Test Compatibility ⚠️ Warning New helper function GetDefaultOSImageStream() uses the ClusterVersion API (config.openshift.io), which is unavailable on MicroShift. Tests calling this function will fail despite having [apigroup... Add a check for MicroShift using exutil.IsMicroShiftCluster() and skip, or add [apigroup:config.openshift.io] tag to test names since ClusterVersion requires that API group.
✅ Passed checks (14 passed)
Check name Status Explanation
Title check ✅ Passed The pull request title directly and clearly summarizes the main change: modifying tests to use RHEL10 as the default stream, which aligns with the primary changes across all three files.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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 All Ginkgo test names in modified files are stable and deterministic. The PR changes 10 tests in mco_osimagestream.go with static Polarion IDs and descriptive text—no dynamic values, fmt.Sprintf ca...
Test Structure And Quality ✅ Passed Ginkgo tests meet quality requirements: single responsibility (mostly), proper setup/cleanup via JustBeforeEach/defer, all Eventually calls include 2m/20s timeouts, assertions include meaningful me...
Single Node Openshift (Sno) Test Compatibility ✅ Passed New Ginkgo e2e tests use SNO-aware pool selection (GetCompactCompatiblePool, GetPoolAndNodesForArchitectureOrFail) that correctly handle single-node clusters by returning master pool instead of wor...
Topology-Aware Scheduling Compatibility ✅ Passed PR only modifies test files (test/extended-priv/*.go, test/e2e-ocl-shared/Containerfile.cowsay); no deployment manifests, operator code, or controllers are changed.
Ote Binary Stdout Contract ✅ Passed All stdout-writing calls are within test blocks (It) which are explicitly exempted. Logger calls write to GinkgoWriter. No klog, fmt.Print, or other stdout violations in process-level code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests (It(), Describe(), Context(), When(), etc.) were added in this PR. The PR only modified existing tests and added helper functions, so the IPv6/disconnected network compatibi...
No-Weak-Crypto ✅ Passed PR contains no cryptographic code, weak crypto algorithms (MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB), custom crypto implementations, or secrets comparisons. Changes are OS image stream updates and...
Container-Privileges ✅ Passed PR modifies test code and build files only. No container/K8s manifests with privileged configurations (privileged: true, hostPID/Network/IPC, SYS_ADMIN, allowPrivilegeEscalation: true) are introduc...
No-Sensitive-Data-In-Logs ✅ Passed No logging statements expose passwords, tokens, API keys, PII, session IDs, internal hostnames, or customer data. All logged values are non-sensitive test infrastructure information (OS stream name...
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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 and usage tips.

@openshift-ci openshift-ci Bot requested review from cheesesashimi and djoshy June 10, 2026 10:17
@sergiordlr

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-vsphere-mco-disruptive periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-metal-ipi-ovn-ipv4-mco-disruptive-1of2 periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-metal-ipi-ovn-ipv4-mco-disruptive-2of2 periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-1of3 periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-2of3 periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-3of3 periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-aws-mco-disruptive periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-azure-mco-disruptive

@openshift-ci

openshift-ci Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

@sergiordlr: trigger 8 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-vsphere-mco-disruptive
  • periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-metal-ipi-ovn-ipv4-mco-disruptive-1of2
  • periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-metal-ipi-ovn-ipv4-mco-disruptive-2of2
  • periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-1of3
  • periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-2of3
  • periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-3of3
  • periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-aws-mco-disruptive
  • periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-azure-mco-disruptive

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/053b64c0-64b6-11f1-8909-bf4cf000156e-0

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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/extended-priv/const.go`:
- Line 213: The test currently assumes DefaultOSImageStream ("rhel-10") is
present and asserts cluster.status.defaultStream equals it; make this
verification conditional on the OSStreams feature gate by detecting whether
OSStreams is enabled before running the assertion in
test/extended-priv/mco_osimagestream.go: if the OSStreams gate is disabled, skip
the check (or the whole test); if enabled, either run the existing assertion
comparing the cluster.status.defaultStream to DefaultOSImageStream or
proactively run the equivalent command (oc get
osimagestreams.machineconfiguration.openshift.io cluster -o
jsonpath='{.status.defaultStream}') and assert it equals DefaultOSImageStream.
Ensure the code references the DefaultOSImageStream constant and the
cluster.status.defaultStream field when performing the conditional check.
🪄 Autofix (Beta)

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: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: f9053e2a-a7e1-49a1-a985-34fd9df32b83

📥 Commits

Reviewing files that changed from the base of the PR and between c669597 and 4589ab3.

📒 Files selected for processing (2)
  • test/extended-priv/const.go
  • test/extended-priv/mco_osimagestream.go

Comment thread test/extended-priv/const.go Outdated
@ptalgulk01

Copy link
Copy Markdown
Contributor

looks good

@HarshwardhanPatil07

Copy link
Copy Markdown
Contributor

/test unit

@pablintino

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 15, 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-aws-ovn
/test e2e-aws-ovn-upgrade
/test e2e-gcp-op-ocl-part1
/test e2e-gcp-op-ocl-part2
/test e2e-gcp-op-part1
/test e2e-gcp-op-part2
/test e2e-gcp-op-single-node
/test e2e-hypershift

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 15, 2026
@sergiordlr sergiordlr force-pushed the use_rhel10_as_default_stream_in_tests branch from 4589ab3 to 69f1f49 Compare June 15, 2026 15:02
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Jun 15, 2026
@sergiordlr

Copy link
Copy Markdown
Contributor Author
PolarionID Test Result
86924 Validate OS Image Streams value PASSED
86495 Check default OS Image Stream PASSED
87095 Realtime kernel rhel9 → rhel10 SKIPPED (default stream is rhel-10)
89322 Realtime kernel rhel10 → rhel9 PASSED
87096 64k pages kernel rhel9 → rhel10 SKIPPED (default stream is rhel-10)
89323 64k pages kernel rhel10 → rhel9 SKIPPED (no ARM64 nodes)
87259 Extensions rhel9 → rhel10 SKIPPED (default stream is rhel-10)
89324 Extensions rhel10 → rhel9 PASSED
88366 osImageStream empty when osImageURL set PASSED
88814 Invalid osImageURL degrades MCP PASSED

6 passed, 0 failed, 4 skipped

  • rhel9 → rhel10 tests (87095, 87096, 87259) correctly skipped on 5.x (default is rhel-10)
  • rhel10 → rhel9 tests (89322, 89324) ran and passed
  • 89323 skipped due to no ARM64 nodes available

We have executed the tests locally.

@sergiordlr

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-vsphere-mco-disruptive periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-metal-ipi-ovn-ipv4-mco-disruptive-1of2 periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-metal-ipi-ovn-ipv4-mco-disruptive-2of2 periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-1of3 periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-2of3 periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-3of3 periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-aws-mco-disruptive periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-azure-mco-disruptive

@openshift-ci

openshift-ci Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

@sergiordlr: trigger 8 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-vsphere-mco-disruptive
  • periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-metal-ipi-ovn-ipv4-mco-disruptive-1of2
  • periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-metal-ipi-ovn-ipv4-mco-disruptive-2of2
  • periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-1of3
  • periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-2of3
  • periodic-ci-openshift-machine-config-operator-release-5.0-arm64-periodics-e2e-aws-mco-disruptive-techpreview-3of3
  • periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-aws-mco-disruptive
  • periodic-ci-openshift-machine-config-operator-release-5.0-periodics-e2e-azure-mco-disruptive

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/81208d40-68cb-11f1-98a4-a4895ce9e032-0

@isabella-janssen isabella-janssen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 15, 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-aws-ovn
/test e2e-aws-ovn-upgrade
/test e2e-gcp-op-ocl-part1
/test e2e-gcp-op-ocl-part2
/test e2e-gcp-op-part1
/test e2e-gcp-op-part2
/test e2e-gcp-op-single-node
/test e2e-hypershift

@sergiordlr

Copy link
Copy Markdown
Contributor Author

/test unit

@sergiordlr sergiordlr force-pushed the use_rhel10_as_default_stream_in_tests branch from 69f1f49 to 394438e Compare June 15, 2026 15:59
@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-aws-ovn
/test e2e-aws-ovn-upgrade
/test e2e-gcp-op-ocl-part1
/test e2e-gcp-op-ocl-part2
/test e2e-gcp-op-part1
/test e2e-gcp-op-part2
/test e2e-gcp-op-single-node
/test e2e-hypershift

@sergiordlr

Copy link
Copy Markdown
Contributor Author

/verified by @sergiordlr

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

Copy link
Copy Markdown
Contributor

@sergiordlr: This PR has been marked as verified by @sergiordlr.

Details

In response to this:

/verified by @sergiordlr

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-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 49eaf75 and 2 for PR HEAD 394438e in total

@sergiordlr

Copy link
Copy Markdown
Contributor Author

/retest

@openshift-ci-robot openshift-ci-robot removed the verified Signifies that the PR passed pre-merge verification criteria label Jun 16, 2026
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Jun 16, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@sergiordlr: This pull request references Jira Issue OCPBUGS-86978, 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 I did
Modify the tests so that they check that the default stream is rhel10 and not rhel9

4.23 and 5.0 have the same code base, so we need to support both cases. In 5.0 the default stream will be rhel10, and in 4.23 the fault stream will be rhel9.

Trying to save some time we will only execute stream changes starting with the default value (10 -> 9 in 5.0, and 9 -> 10 in 4.23), we will skip the test cases testing the other way around.

- How to verify it
All tests should pass

Summary by CodeRabbit

Summary by CodeRabbit

  • Tests
  • Updated disruptive OS image stream transition scenarios to reverse the RHEL stream direction (RHEL10 ↔ RHEL9), including refreshed identifiers, revised transition parameters, and updated skip logic.
  • Updated default OS image stream handling to use the cluster’s effective default dynamically (with RHEL10 as the baseline), and adjusted related assertions.
  • Build/Images
  • Updated the shared cowsay Containerfile to move the CentOS base stage from stream9 to stream10 and adjust repo stream rewriting and rpm-ostree behavior accordingly.

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
test/e2e-ocl-shared/Containerfile.cowsay (2)

1-10: ⚖️ Poor tradeoff

Container security directives missing.

The following container security best practices from the coding guidelines are not implemented:

  • No USER directive (container runs as root)
  • No HEALTHCHECK defined
  • Package manager cache not explicitly cleared in the final layer

While this is test infrastructure, these directives improve security posture and align with prodsec guidelines. As per coding guidelines, containers should run as non-root, include health checks, and avoid package manager cache in the final layer.

🤖 Prompt for 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.

In `@test/e2e-ocl-shared/Containerfile.cowsay` around lines 1 - 10, Add three
security directives to align with container security best practices: First, add
a USER directive before the final ostree container commit to ensure the
container runs as a non-root user rather than root. Second, add a HEALTHCHECK
directive to define container health status monitoring. Third, explicitly clear
the package manager cache by adding dnf clean all after the rpm-ostree
operations in the final stage to remove unnecessary package manager metadata and
reduce the image layer size. These changes should be incorporated into the final
stage after the COPY operations and before the ostree container commit.

Source: Coding guidelines


1-1: ⚖️ Poor tradeoff

Base image violates container security guidelines.

The base image uses quay.io/centos/centos:stream10 instead of UBI minimal or distroless from catalog.redhat.com, and the floating tag stream10 is not pinned by digest as required for non-Red Hat images. As per coding guidelines, Red Hat images should use floating tags (Red Hat manages updates), but non-RH images must be pinned by digest for reproducibility and security.

Consider switching to a UBI-based image from the Red Hat catalog and pinning non-RH images by digest.

🤖 Prompt for 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.

In `@test/e2e-ocl-shared/Containerfile.cowsay` at line 1, The FROM statement uses
a non-Red Hat image (quay.io/centos/centos:stream10) with a floating tag, which
violates container security guidelines. Replace this base image with a UBI
minimal or distroless image from the Red Hat catalog (catalog.redhat.com), which
are the approved alternatives. If you must use a non-Red Hat image, pin it to a
specific digest instead of using the floating tag stream10 to ensure
reproducibility and security compliance.

Source: Coding guidelines

🤖 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-ocl-shared/Containerfile.cowsay`:
- Line 8: The rpm-ostree override replace command with the --experimental flag
has || true appended, which silently masks build failures that should be caught.
Determine if this override is truly optional or expected to succeed. If it is
essential, remove the || true suffix to fail fast on errors. If the override is
genuinely optional, keep || true but add a detailed comment above the command
explaining why failures are acceptable (such as expected unavailability in
certain stream versions or experimental flag compatibility issues).

---

Nitpick comments:
In `@test/e2e-ocl-shared/Containerfile.cowsay`:
- Around line 1-10: Add three security directives to align with container
security best practices: First, add a USER directive before the final ostree
container commit to ensure the container runs as a non-root user rather than
root. Second, add a HEALTHCHECK directive to define container health status
monitoring. Third, explicitly clear the package manager cache by adding dnf
clean all after the rpm-ostree operations in the final stage to remove
unnecessary package manager metadata and reduce the image layer size. These
changes should be incorporated into the final stage after the COPY operations
and before the ostree container commit.
- Line 1: The FROM statement uses a non-Red Hat image
(quay.io/centos/centos:stream10) with a floating tag, which violates container
security guidelines. Replace this base image with a UBI minimal or distroless
image from the Red Hat catalog (catalog.redhat.com), which are the approved
alternatives. If you must use a non-Red Hat image, pin it to a specific digest
instead of using the floating tag stream10 to ensure reproducibility and
security compliance.
🪄 Autofix (Beta)

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: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 5ec8d580-9c3f-42f4-a25a-20a2a49e87f1

📥 Commits

Reviewing files that changed from the base of the PR and between 394438e and 2c07de2.

📒 Files selected for processing (1)
  • test/e2e-ocl-shared/Containerfile.cowsay

COPY --from=centos /etc/pki/rpm-gpg/RPM-GPG-KEY-* /etc/pki/rpm-gpg/
RUN sed -i 's/\$stream/9-stream/g' /etc/yum.repos.d/centos*.repo && \
RUN sed -i 's/\$stream/10-stream/g' /etc/yum.repos.d/centos*.repo && \
rpm-ostree override replace --experimental --from repo=baseos ncurses ncurses-libs ncurses-base || true && \

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Silent failure in rpm-ostree override may mask build issues.

The || true suffix on the rpm-ostree override replace --experimental command causes the build to continue even if the override fails. This could silently mask legitimate failures such as package unavailability in stream10, experimental flag rejection, or repository misconfiguration.

If the override is truly optional, add a comment explaining why failures are expected and acceptable. If the override is expected to succeed, remove || true to fail fast on errors.

🤖 Prompt for 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.

In `@test/e2e-ocl-shared/Containerfile.cowsay` at line 8, The rpm-ostree override
replace command with the --experimental flag has || true appended, which
silently masks build failures that should be caught. Determine if this override
is truly optional or expected to succeed. If it is essential, remove the || true
suffix to fail fast on errors. If the override is genuinely optional, keep ||
true but add a detailed comment above the command explaining why failures are
acceptable (such as expected unavailability in certain stream versions or
experimental flag compatibility issues).

@sergiordlr

Copy link
Copy Markdown
Contributor Author

/verified by @sergiordlr

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

Copy link
Copy Markdown
Contributor

@sergiordlr: This PR has been marked as verified by @sergiordlr.

Details

In response to this:

/verified by @sergiordlr

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.

@isabella-janssen isabella-janssen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 16, 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-aws-ovn
/test e2e-aws-ovn-upgrade
/test e2e-gcp-op-ocl-part1
/test e2e-gcp-op-ocl-part2
/test e2e-gcp-op-part1
/test e2e-gcp-op-part2
/test e2e-gcp-op-single-node
/test e2e-hypershift

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 49eaf75 and 2 for PR HEAD 2c07de2 in total

@HarshwardhanPatil07

Copy link
Copy Markdown
Contributor

/retest-required

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD d0c3a5e and 1 for PR HEAD 2c07de2 in total

@sergiordlr sergiordlr force-pushed the use_rhel10_as_default_stream_in_tests branch from 2c07de2 to 394438e Compare June 17, 2026 09:31
@openshift-ci-robot openshift-ci-robot removed the verified Signifies that the PR passed pre-merge verification criteria label Jun 17, 2026
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Jun 17, 2026
@sergiordlr

Copy link
Copy Markdown
Contributor Author

/verified by @sergiordlr

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

Copy link
Copy Markdown
Contributor

@sergiordlr: This PR has been marked as verified by @sergiordlr.

Details

In response to this:

/verified by @sergiordlr

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.

@pablintino

Copy link
Copy Markdown
Contributor

/lgtm

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

Copy link
Copy Markdown
Contributor

Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage.

@openshift-ci

openshift-ci Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: isabella-janssen, pablintino, sergiordlr

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:
  • OWNERS [isabella-janssen,pablintino,sergiordlr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci

openshift-ci Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

@sergiordlr: 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/e2e-aws-ovn 2c07de2 link true /test e2e-aws-ovn

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

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. 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.

6 participants