fix(ci): nest backport conflict_resolution under experimental input - #3155
Conversation
The backport workflow passed conflict_resolution as a top-level input to korthout/backport-action, but the action only reads it from inside the experimental JSON object. Passed top-level it was silently ignored (the run logs warn "Unexpected input(s) 'conflict_resolution'"), so the action used the experimental default of "fail": on a cherry-pick conflict it created no pull request and only posted a comment. Move the key into the experimental input so a conflicting backport opens a draft PR with the first conflict committed, giving maintainers something to resolve in place instead of a dead-end comment. Assisted-By: Claude <[email protected]> Signed-off-by: Myasnikov Daniil <[email protected]>
|
Note Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe backport workflow's "Create back-port PR" step moves ChangesBackport Workflow Fix
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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 |
…Claim readiness and speed up COSI provisioner failover (#3532) ## What this PR does Hand-backport of #3034 to `release-1.5`. The `backport` label was applied at merge time but no backport PR was ever opened, so the change never reached this branch — found by auditing the branch with `cmd/backport-audit`, which reported it as `MISSING`. Every candidate that went missing this way merged before #3155 landed, when `conflict_resolution` was passed as a top-level input instead of nested under `experimental`. The action ignored it and fell back to `fail`, which on a conflicting cherry-pick opens no PR and reports no failure, so these were dropped with no draft to find and no red check to notice. The six original commits are cherry-picked with `-x`, unchanged and in order. No adaptation was needed: the cherry-pick was clean, and the net diff is identical to the change on `main`. ### Verification The two `.diff` files are image patches applied at build time against upstream `container-object-storage-interface`, so what matters is that this branch pins the same upstream source. It does — both `release-1.5` and `main` set `ARG COMMIT_REF=v0.2.2` in `images/objectstorage/Dockerfile`, and the resulting patch set on this branch (`91`, `92`, `93`) is byte-identical to `main`'s. Patch `91` was already present here unchanged, so `92` applies over the same base it does on `main`. The branch differs from `main` only in its builder pins (`golang:1.24` versus `1.26`, unpinned base digests), none of which affect patch application. ### Screenshots Not applicable — no UI change. ### Release note ```release-note fix(objectstorage-controller): converge BucketClaim readiness to the backend Bucket and speed up single-replica COSI provisioner failover ```
…does not crashloop the install gate (#3533) ## What this PR does Hand-backport of #3138 to `release-1.5`. The `backport` label was applied at merge time but no backport PR was ever opened, so the change never reached this branch — found by auditing the branch with `cmd/backport-audit`, which reported it as `MISSING`. Like the other items in that set, it merged before #3155 fixed the bot's `conflict_resolution` input, so the conflicting cherry-pick was dropped with no draft and no failing check. Velero binds its metrics/health endpoint (`:8085`) only after loading plugins and connecting to the API server. Under a heavy parallel platform install the upstream liveness probe starts checking at `initialDelaySeconds=10` and kills the container after `failureThreshold=5`, so velero BackOff-restarts and never escapes the loop inside the install-gate window. Because `backupstrategy-controller` hard-depends on velero, this blocks the gate. The fix adds a `startupProbe`, which holds liveness and readiness off entirely while it is failing, granting `30 * 10s = 300s` of startup grace and then handing over to the unchanged upstream liveness for steady-state crash detection. ### Backport adaptations This branch vendors velero chart **11.0.0** (appVersion 1.17.0) rather than `main`'s 12.0.3 (1.18.1), so three things differ from the original. All are recorded in the commit message as well. - **The chart version is not bumped.** Only the patch re-application is added to `update`. The `helm pull` here was previously unpinned, which would have let `update` float to a chart the patch does not apply to, so it is pinned to `11.0.0` — the version already vendored. That makes the new patch step deterministic and leaves the vendored tree byte-identical. - **The `test:` target is added.** It exists on `main` but not here, so without it the shipped regression guard would never run. - **The image assertions pin this branch's own versions** (velero `v1.17.0`, `plugin-for-aws` `v1.12.1`, kubevirt plugin `v0.8.0`), and the `upgrade-crds` rationale is restated for chart 11.0.0, where that Job still runs a kubectl image — `main`'s comment about the Job running the velero image natively is true for 12.x only. The `startupProbe` hunk itself applies to chart 11.0.0's deployment template unchanged, in the same position inside the `metrics.enabled` gate. ### Verification `helm unittest .` passes 5/5 in `packages/system/velero`. The assertions are mutually corroborating rather than vacuous: the `equal` assertions prove the `startupProbe` path actually renders, and the same paths are asserted absent under `velero.metrics.enabled: false`, proving it follows the same gate as liveness and readiness so disabling metrics can never leave a `startupProbe` pointed at an unbound port. ### Screenshots Not applicable — no UI change. ### Release note ```release-note fix(velero): add a startupProbe so a slow velero server start under heavy parallel install no longer crashloops the container and blocks the install gate ```
The "Cherry-pick triage before a patch" step 1 told the release manager to inventory backports with `gh pr list --search "is:merged label:backport"`, annotated "merged but not yet on release-X.Y" -- which that command cannot tell you. It lists every PR ever labelled, whether or not the change reached the branch. Step 1 now runs backport-audit, which resolves each label to the line it meant at merge time and reports what landed, what is waiting on an open backport PR, what was deliberately dropped and with what reason, and what is missing outright. Steps 2 and 3 stay: they cover changes that were never labelled, which the audit structurally cannot see. Also records the failure mode that makes the audit worth running. Before #3155, `conflict_resolution` was passed top-level instead of nested under `experimental`, so the action ignored it and fell back to `fail`, which on a conflicting cherry-pick opens no PR and reports no failure. Those backports were dropped with no draft to find and no red check to notice, so a cluster of MISSING verdicts in one time window is the signature of that, not of maintainers forgetting. Pointers added where someone is standing when they need this: the cherry-pick step of Patch Releases, and the agent-facing release quick reference, which now says not to call a branch ready to cut on the strength of a label search. Assisted-By: Claude <[email protected]> Signed-off-by: Myasnikov Daniil <[email protected]>
What this PR does
The Automatic Backport workflow passed
conflict_resolution: draft_commit_conflictsas a top-level input tokorthout/backport-action, but the action only readsconflict_resolutionfrom inside itsexperimentalJSON input. Passed top-level it was silently ignored — the action run logs warnUnexpected input(s) 'conflict_resolution'— so it fell back to theexperimentaldefault offail. On a cherry-pick conflict the action then created no pull request and only left a "Backport failed" comment on the source PR (this bit #3121 and #3119).This moves the key into the
experimentalinput, so a conflicting backport instead opens a draft PR with the first conflict committed for maintainers to resolve in place.No version bump: the pinned
v3.2.1already supportsdraft_commit_conflicts— the bug was purely the input placement.Release note
Summary by CodeRabbit