Skip to content

ci: default OCP 5.x fresh installs to RHCOS 10 - #548

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift-eng:mainfrom
petr-muller:trt-2612-rhcos10-switch
Jun 16, 2026
Merged

openshift-merge-bot[bot] merged 1 commit into
openshift-eng:mainfrom
petr-muller:trt-2612-rhcos10-switch

Conversation

@petr-muller

@petr-muller petr-muller commented Jun 16, 2026

Copy link
Copy Markdown
Member

OCP 5.x clusters installed fresh now default to RHCOS 10 (rhcos10-default) instead of RHCOS 9. Clusters installed as OCP 4.x (including major upgrades to 5.x) remain on RHCOS 9 (rhcos9-default).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores

    • Updated the ci plugin version to 0.0.51 (including marketplace and site metadata).
  • Documentation

    • Updated RHCOS defaulting guidance: OCP 5.x now defaults to RHCOS 10.
    • Refreshed RHCOS variant detection and payload-snapshot/payload-analysis documentation.
    • Added “Step 3b: Confirm RHCOS Version” guidance for install-failure and test-failure analysis flows.
  • Improvements

    • Improved handling of the rhcos10-default RHCOS variant, including fallback behavior and clearer reporting/badge mapping.

OCP 5.x clusters installed fresh now use RHCOS 10 as default.
Clusters installed as OCP 4.x (including major upgrades to 5.x)
remain on RHCOS 9.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@openshift-ci
openshift-ci Bot requested review from mrunalp and zaneb June 16, 2026 12:25
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 16, 2026
@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

The CI plugin is updated to recognize OCP 5.x as defaulting to RHCOS 10 at install time instead of RHCOS 9. The _determine_rhcos_version() function now returns rhcos10-default for OCP major version >= 5. Associated documentation across reference guides, payload-snapshot SKILL, payload-analysis SKILL, and job analysis workflows is updated to recognize the new variant. Plugin version is bumped from 0.0.49 to 0.0.51 across all manifests.

Changes

RHCOS 10 default variant support and ci plugin version bump

Layer / File(s) Summary
RHCOS 10 default variant detection logic
plugins/ci/skills/payload-snapshot/scripts/payload_snapshot.py, plugins/ci/references/jobs.md, plugins/ci/skills/payload-snapshot/SKILL.md
_determine_rhcos_version() now returns rhcos10-default for OCP major >= 5. Job pattern reference is updated to document that OCP 5.x defaults to RHCOS 10 at install time. Payload-snapshot SKILL documentation clarifies the new rhcos10-default classification with conditional defaulting rules based on OCP version and install type.
Payload-analysis skill RHCOS 10 support
plugins/ci/skills/payload-analysis/SKILL.md
Snapshot field descriptions, subagent prompt guidance, structured ANALYSIS_RESULT output values, cross-job variant isolation rules, and HTML blocking jobs table RHCOS badge mapping are extended to recognize and handle rhcos10-default as RHCOS 10.
Job analysis workflow RHCOS confirmation steps
plugins/ci/skills/prow-job-analyze-install-failure/SKILL.md, plugins/ci/skills/prow-job-analyze-test-failure/SKILL.md
New "Step 3b: Confirm RHCOS Version" sections are added to both install-failure and test-failure analysis workflows. Each step retrieves nodes.json from gather-extra artifacts, extracts and parses .status.nodeInfo.osImage per node to determine RHCOS 9 vs 10, reports heterogeneous versions when detected, and treats missing data as non-blocking.
ci plugin version bump to 0.0.51
plugins/ci/.claude-plugin/plugin.json, .claude-plugin/marketplace.json, docs/index.html
Plugin version incremented from 0.0.49 to 0.0.51 in the plugin manifest, marketplace registry, and docs site embedded data.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • openshift-eng/ai-helpers#519: Introduced the initial RHCOS "default" variant plumbing in _determine_rhcos_version() and related docs that this PR refines by changing the major >= 5 fallback to rhcos10-default.
  • openshift-eng/ai-helpers#514: Updated payload-analysis SKILL contracts for rhcos_version variant awareness and badge/isolation logic that this PR extends to cover rhcos10-default.

Suggested labels

lgtm

Suggested reviewers

  • zaneb
🚥 Pre-merge checks | ✅ 10
✅ Passed checks (10 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main change: updating the default RHCOS version for OCP 5.x fresh installs from RHCOS 9 to RHCOS 10.
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.
No Real People Names In Style References ✅ Passed Comprehensive search of all PR files found no references to real people by name in style references, plugin commands, skill documentation, example prompts, or instructions.
No Assumed Git Remote Names ✅ Passed No hardcoded git remote names (origin/upstream) found in any of the 9 files modified in this PR. All changes are either version updates, documentation changes about RHCOS configuration, or a single...
Git Push Safety Rules ✅ Passed PR contains no git push commands, force pushes, or autonomous push workflows. Changes are limited to version updates, documentation, and read-only git operations (clone, fetch, diff).
No Untrusted Mcp Servers ✅ Passed PR introduces only trusted MCP servers: Golang's official gopls Language Server and Atlassian's official Jira MCP endpoint at https://mcp.atlassian.com/v1/mcp. No untrusted sources detected.
Ai-Helpers Overlap Detection ✅ Passed PR modifies only existing skills in the ci plugin with domain-specific RHCOS version handling. No overlapping functionality detected within modified skills or against existing repository content. N...

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

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

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

@petr-muller

Copy link
Copy Markdown
Member Author

/test eval-payload-analysis

@petr-muller
petr-muller force-pushed the trt-2612-rhcos10-switch branch 2 times, most recently from 029b152 to 4ad2801 Compare June 16, 2026 12:45

@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.

🧹 Nitpick comments (3)
plugins/ci/skills/prow-job-analyze-test-failure/SKILL.md (1)

99-101: 💤 Low value

Add language identifier to fenced code block.

The opening triple backticks on line 99 should specify a language (e.g., text) for compliance with Markdown linting standards.

Fix: Add language identifier
- ```
+ ```text
  artifacts/{target}/gather-extra/artifacts/nodes.json
- ```
+ ```
🤖 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 `@plugins/ci/skills/prow-job-analyze-test-failure/SKILL.md` around lines 99 -
101, The fenced code block containing the artifact path
"artifacts/{target}/gather-extra/artifacts/nodes.json" is missing a language
identifier after the opening triple backticks, which violates Markdown linting
standards. Add the language identifier "text" to the opening backticks (change
``` to ```text) to specify the code block's content type and ensure compliance
with linting rules.

Source: Linters/SAST tools

plugins/ci/references/jobs.md (1)

54-54: ⚡ Quick win

Add language identifiers to code blocks for clarity.

The bash code blocks at lines 54 and 70 lack language specifications. Add bash to the opening fence to improve readability and fix linter warnings.

Proposed fix for code block language identifiers
 This is a JSON file containing Node resources. Use `prow-job-artifact-search` to find and fetch it:

-```
+```bash
 # Find nodes.json
 prow_job_artifact_search.py <url> search "**/nodes.json" artifacts

and

- +bash

Fetch it

prow_job_artifact_search.py fetch artifacts/{target}/gather-extra/artifacts/nodes.json

</details>


Also applies to: 70-70

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @plugins/ci/references/jobs.md at line 54, The bash code blocks in the file
plugins/ci/references/jobs.md at lines 54 and 70 are missing language
identifiers which impacts readability and triggers linter warnings. Add the bash
language specifier to both code blocks by changing the opening fence from ``` to

plugins/ci/skills/prow-job-analyze-install-failure/SKILL.md (1)

142-144: ⚡ Quick win

Add language identifier to the code block path example.

Line 142's fenced code block lacks a language identifier. Since it shows a filesystem path, add a language identifier (e.g., text or leave it empty, but most importantly fix the linter warning).

Proposed fix
 Use `prow-job-artifact-search` to look for `nodes.json` in gather-extra:

-```
+```text
 artifacts/{target}/gather-extra/artifacts/nodes.json
-```
+```
🤖 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 `@plugins/ci/skills/prow-job-analyze-install-failure/SKILL.md` around lines 142
- 144, Add a language identifier to the opening fence of the code block at line
142 in the SKILL.md file. The code block currently has a bare opening fence
(```) but should include a language identifier such as `text` (e.g., ```text) to
resolve the markdown linter warning. The closing fence should remain unchanged.
🤖 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.

Nitpick comments:
In `@plugins/ci/references/jobs.md`:
- Line 54: The bash code blocks in the file plugins/ci/references/jobs.md at
lines 54 and 70 are missing language identifiers which impacts readability and
triggers linter warnings. Add the bash language specifier to both code blocks by
changing the opening fence from ``` to ```bash for each of the two bash code
blocks at these locations.

In `@plugins/ci/skills/prow-job-analyze-install-failure/SKILL.md`:
- Around line 142-144: Add a language identifier to the opening fence of the
code block at line 142 in the SKILL.md file. The code block currently has a bare
opening fence (```) but should include a language identifier such as `text`
(e.g., ```text) to resolve the markdown linter warning. The closing fence should
remain unchanged.

In `@plugins/ci/skills/prow-job-analyze-test-failure/SKILL.md`:
- Around line 99-101: The fenced code block containing the artifact path
"artifacts/{target}/gather-extra/artifacts/nodes.json" is missing a language
identifier after the opening triple backticks, which violates Markdown linting
standards. Add the language identifier "text" to the opening backticks (change
``` to ```text) to specify the code block's content type and ensure compliance
with linting rules.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: fb6e130b-d484-44b6-b798-0e5992c89bfa

📥 Commits

Reviewing files that changed from the base of the PR and between 4ad2801 and 029b152.

📒 Files selected for processing (6)
  • .claude-plugin/marketplace.json
  • docs/index.html
  • plugins/ci/.claude-plugin/plugin.json
  • plugins/ci/references/jobs.md
  • plugins/ci/skills/prow-job-analyze-install-failure/SKILL.md
  • plugins/ci/skills/prow-job-analyze-test-failure/SKILL.md
✅ Files skipped from review due to trivial changes (1)
  • docs/index.html

@petr-muller

Copy link
Copy Markdown
Member Author

/test eval-payload-analysis

@stbenjam

Copy link
Copy Markdown
Member

/lgtm

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

openshift-ci Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: petr-muller, stbenjam

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

@openshift-merge-bot
openshift-merge-bot Bot merged commit 7d0065f into openshift-eng:main Jun 16, 2026
8 checks passed
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. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants