Skip to content

docs: deferred upgrade finalization on Kubernetes (DOC-2273)#1816

Open
JakeSCahill wants to merge 1 commit into
betafrom
doc-2273-unfinalized-upgrades
Open

docs: deferred upgrade finalization on Kubernetes (DOC-2273)#1816
JakeSCahill wants to merge 1 commit into
betafrom
doc-2273-unfinalized-upgrades

Conversation

@JakeSCahill

Copy link
Copy Markdown
Contributor

Documents deferred ("unfinalized") upgrades for Kubernetes deployments (DOC-2273, eng epic ENG-1067; core feature per ENG-1029 and the TOI writeup).

Changes

  • New Defer upgrade finalization section in upgrade:k-rolling-upgrade.adoc: set features_auto_finalization: false before the upgrade (26.1.9+/25.3.15+, Enterprise), roll as usual (no operator/chart changes needed), verify with rpk cluster upgrade status (real observed output), soak, then rpk cluster upgrade finalize (irreversible) — plus the three sharp caveats (config flip does not finalize; finalize requests are not persisted across controller leadership changes; one hop at a time).
  • Roll back section extended: with deferred finalization you can roll back after all brokers are upgraded, until you finalize.
  • Shared limitations partial (rolling-upgrades/upgrade-limitations.adoc): Rollbacks and Downgrades bullets gain the deferred-finalization exception, phrased generically because the partial also serves the Linux page (DOC-2013, Joyce).
  • Troubleshooting: the Incompatible downgrade detected guard after finalization, why the roll halts at the first refused broker, and the validated recovery (set the image forward; deleting the crash-looping Pod does not help because the StatefulSet recreates it at the old revision).

Validation (kind v1.34.0, operator 26.2.1-beta.3, 3 brokers)

Full loop verified live: 26.1.13 with the flag set → roll to 26.2.1-rc4 → ready to finalize → image-tag rollback to 26.1.13 (cluster healthy on old binary) → re-upgrade → finalizefinalized on first poll → downgrade attempt refused with the guard signature, roll halted at broker 0 while the cluster stayed available → recovery by setting the image forward.

Coordination

  • DOC-2013 (Joyce) owns the concept page and Linux procedure; the shared partial change here is written to serve both. The features_auto_finalization property reference already exists; the rpk cluster upgrade reference pages come with the 26.2 rpk regen.
  • GA framing per release decision: no beta/RC mentions.

Adds a Defer upgrade finalization section to the K8s rolling upgrade
guide, extends the Roll back section for the unfinalized case, updates
the shared limitations partial, and documents the post-finalization
downgrade guard in troubleshooting.

Validated end-to-end on kind v1.34 (operator 26.2.1-beta.3, 3 brokers):
26.1.13 with features_auto_finalization=false, roll to 26.2.1-rc4,
status ready-to-finalize, image-tag rollback to 26.1.13 (healthy),
re-upgrade, finalize (status finalized), and the downgrade guard
(Incompatible downgrade detected crash-loop, roll halts, cluster stays
available, recovery by setting the image forward).
@JakeSCahill
JakeSCahill requested a review from a team as a code owner July 21, 2026 17:06
@netlify

netlify Bot commented Jul 21, 2026

Copy link
Copy Markdown

Deploy Preview for redpanda-docs-preview ready!

Name Link
🔨 Latest commit ae4c7e4
🔍 Latest deploy log https://app.netlify.com/projects/redpanda-docs-preview/deploys/6a5fa732857d94000805d99a
😎 Deploy Preview https://deploy-preview-1816--redpanda-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 816d1553-5bbb-44f2-bc97-3422e4142f89

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch doc-2273-unfinalized-upgrades

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant