Skip to content

fix(ci): nest backport conflict_resolution under experimental input - #3155

Merged
myasnikovdaniil merged 1 commit into
mainfrom
fix/ci-backport-conflict-resolution
Jul 3, 2026
Merged

myasnikovdaniil merged 1 commit into
mainfrom
fix/ci-backport-conflict-resolution

Conversation

@myasnikovdaniil

@myasnikovdaniil myasnikovdaniil commented Jun 30, 2026 •

Copy link
Copy Markdown
Contributor

What this PR does

The Automatic Backport workflow passed conflict_resolution: draft_commit_conflicts as a top-level input to korthout/backport-action, but the action only reads conflict_resolution from inside its experimental JSON input. Passed top-level it was silently ignored — the action run logs warn Unexpected input(s) 'conflict_resolution' — so it fell back to the experimental default of fail. 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 experimental input, 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.1 already supports draft_commit_conflicts — the bug was purely the input placement.

Release note

NONE

Summary by CodeRabbit

  • Bug Fixes
    • Backport pull requests now handle conflicts more reliably and open as draft PRs when conflicts are detected.
    • Improved configuration handling so the expected conflict behavior is applied consistently during backport automation.

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]>
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

@github-actions github-actions Bot added size/S This PR changes 10-29 lines, ignoring generated files area/ci Issues or PRs related to CI workflows, GitHub Actions, automation kind/bug Categorizes issue or PR as related to a bug labels Jun 30, 2026
@dosubot dosubot Bot added the area/release Issues or PRs related to release tooling (changelog, backport, release pipeline) label Jun 30, 2026
@coderabbitai

coderabbitai Bot commented Jun 30, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 89ae18ea-6c30-4bb8-9410-f8b8358b020a

📥 Commits

Reviewing files that changed from the base of the PR and between eab9b03 and 7227d4d.

📒 Files selected for processing (1)
  • .github/workflows/backport.yaml

📝 Walkthrough

Walkthrough

The backport workflow's "Create back-port PR" step moves conflict_resolution: draft_commit_conflicts from a top-level action input into the experimental JSON input block, with comments explaining the nesting requirement.

Changes

Backport Workflow Fix

Layer / File(s) Summary
conflict_resolution moved to experimental input
.github/workflows/backport.yaml
Replaces the ignored top-level conflict_resolution key with an experimental JSON block containing "conflict_resolution": "draft_commit_conflicts", and adds comments explaining why nesting is required.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

A rabbit hopped by with a patch so neat,
The conflict key wandered to experimental's beat.
No more ignored flags lost in the snow,
Draft PRs on conflicts — watch the backports flow!
🐇✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the core workflow fix by moving backport conflict resolution into the experimental input.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/ci-backport-conflict-resolution

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.

@myasnikovdaniil
myasnikovdaniil merged commit dad78bd into main Jul 3, 2026
16 of 17 checks passed
@myasnikovdaniil
myasnikovdaniil deleted the fix/ci-backport-conflict-resolution branch July 3, 2026 07:53
myasnikovdaniil added a commit that referenced this pull request Aug 4, 2026
…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
```
myasnikovdaniil added a commit that referenced this pull request Aug 4, 2026
…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
```
myasnikovdaniil added a commit that referenced this pull request Sep 2, 2026
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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci Issues or PRs related to CI workflows, GitHub Actions, automation area/release Issues or PRs related to release tooling (changelog, backport, release pipeline) kind/bug Categorizes issue or PR as related to a bug size/S This PR changes 10-29 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant