payload-analysis: do not recommend revert or force-reject for kube rebase version skew - #627
redhat-chai-bot wants to merge 1 commit into
Conversation
WalkthroughThe CI plugin version is synchronized from 0.0.69 to 0.0.70. Payload analysis now treats Kubernetes rebase kubelet version skew as transient build lag and waits for the rebuilt kubelet before recommending action. ChangesCI plugin updates
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 10✅ Passed checks (10 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
plugins/ci/skills/payload-analysis/SKILL.md (1)
402-403: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick winMake the output-schema mapping explicit.
The downstream
failure_typeenum only permitstest,install,upgrade, orinfra. Clarify that"transient build lag"belongs inroot_cause_summary/failure_pattern, while retaining the existingfailure_typeenum, to avoid invalidpayload-resultsoutput.🤖 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/payload-analysis/SKILL.md` around lines 402 - 403, Clarify the output mapping in the failure-mode guidance: keep failure_type set to one of the existing test, install, upgrade, or infra enum values, and record “transient build lag” only in root_cause_summary and/or failure_pattern. Apply this clarification to the pending kubelet rebuild and updated RHCOS monitoring instructions.
🤖 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/skills/payload-analysis/SKILL.md`:
- Around line 402-403: Clarify the output mapping in the failure-mode guidance:
keep failure_type set to one of the existing test, install, upgrade, or infra
enum values, and record “transient build lag” only in root_cause_summary and/or
failure_pattern. Apply this clarification to the pending kubelet rebuild and
updated RHCOS monitoring instructions.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: c856c062-d7b4-479d-a92e-6aa318dc89e4
📒 Files selected for processing (4)
.claude-plugin/marketplace.jsondocs/index.htmlplugins/ci/.claude-plugin/plugin.jsonplugins/ci/skills/payload-analysis/SKILL.md
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
plugins/ci/skills/payload-analysis/SKILL.md (1)
397-404: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winApply the Kubernetes skew override only when it is the sole relevant cause.
The new exception can mask independent failure modes: it rewrites classification/output as transient build lag and suppresses both revert and force-action guidance even when another regression still requires action.
plugins/ci/skills/payload-analysis/SKILL.md#L397-L404: preserve all unrelated failure-mode classifications and summaries.plugins/ci/skills/payload-analysis/SKILL.md#L433-L439: disable force actions only when every blocking failure is explained by the skew condition.🤖 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/payload-analysis/SKILL.md` around lines 397 - 404, The Kubernetes skew override in the Kubernetes rebase guidance must apply only when kubelet version skew is the sole relevant blocking failure. At plugins/ci/skills/payload-analysis/SKILL.md:397-404, preserve classifications and root-cause summaries for any independent failures while applying the transient build-lag treatment only to skew-related failures; at plugins/ci/skills/payload-analysis/SKILL.md:433-439, suppress revert and force-action guidance only when every blocking failure is explained by the skew condition, otherwise retain the required action guidance for unrelated regressions.
🤖 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.
Outside diff comments:
In `@plugins/ci/skills/payload-analysis/SKILL.md`:
- Around line 397-404: The Kubernetes skew override in the Kubernetes rebase
guidance must apply only when kubelet version skew is the sole relevant blocking
failure. At plugins/ci/skills/payload-analysis/SKILL.md:397-404, preserve
classifications and root-cause summaries for any independent failures while
applying the transient build-lag treatment only to skew-related failures; at
plugins/ci/skills/payload-analysis/SKILL.md:433-439, suppress revert and
force-action guidance only when every blocking failure is explained by the skew
condition, otherwise retain the required action guidance for unrelated
regressions.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: bc56eb92-a7f8-4440-8688-fd8adbcbc0a7
📒 Files selected for processing (1)
plugins/ci/skills/payload-analysis/SKILL.md
|
/test payload-agent |
|
Typically the eval data lives in https://github.com/stbenjam/historical-payload-data IIUC |
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
84e8ab4 to
25fd368
Compare
There was a problem hiding this comment.
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
`@plugins/ci/evals/cases/payload-analysis/case-015-5.0-nightly-kube-rebase-skew/annotations.yaml`:
- Around line 1-14: Add a scored assertion to the case configuration that
requires classification as transient build lag and recommends waiting for the
rebuilt kubelet, rather than relying solely on expected_phase: Rejected. Update
the relevant expected outcome fields near expected_candidates and preserve the
existing no-revert, no-force-accept, and no-force-reject expectations.
🪄 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: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 54fa2de5-81a3-4468-a606-30cc35f9fb6d
📒 Files selected for processing (2)
plugins/ci/evals/cases/payload-analysis/case-015-5.0-nightly-kube-rebase-skew/annotations.yamlplugins/ci/evals/cases/payload-analysis/case-015-5.0-nightly-kube-rebase-skew/input.yaml
|
payload agent succeeded on equivalent previous commit. i ran this case locally and it also succeeded. /lgtm |
|
/approve /hold waiting on stbenjam/historical-payload-data#3, although then shouldnt eval-payload-analysis-changed be red? |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: redhat-chai-bot, sosiouxme, theobarberbany 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 |
|
The
What happened: the eval harness orchestrator launched Evidence from
Net effect: the eval gate is not actually gating anything on this PR. The job will pass regardless of whether the changed eval cases succeed or fail. Likely needs a fix in either the eval harness (prevent |
|
/test ci/prow/eval-payload-analysis-changed |
|
/test eval-payload-analysis-changed |
|
So one passes, one fails with the same code / harness. Claude analysis: |
Summary
When a Kubernetes rebase merges in
openshift/kubernetes, there is an expected lag of hours while the kubelet is rebuilt against the new source and delivered via an updated RHCOS image. During this window, kubelet version skew (kubelet on an older kube version than kube-apiserver) causes widespread test failures across all platforms.The payload agent currently treats this like any other PR-caused regression: it scores the rebase PR at high confidence and recommends reverting it. This is incorrect — the kubelet binary is built from
openshift/kubernetes, so the rebase must remain for the kubelet to pick up the new version. Reverting would prevent the kubelet from ever being updated.Changes
Two additive sections in
plugins/ci/skills/payload-analysis/SKILL.md:Step 6.2 — Special case: Kubernetes rebase version skew
Step 6.4 — Guard: kubelet version skew from a Kubernetes rebase
Context
This was identified during analysis of
5.0.0-0.nightly-2026-07-17-034502where the agent incorrectly recommended revertingopenshift/kubernetes#2653(Kubernetes 1.36.2 rebase). Feedback from TRT in https://redhat-internal.slack.com/archives/C02K89U2EV8/p1752756363338069.@sosiouxme requested in Slack thread
Summary by CodeRabbit