Skip to content

feat(openbao): check every pod and run the HA guard before upgrades - #38

Merged
github-actions[bot] merged 3 commits into
mainfrom
feat/864-wp3-raft-guard
Nov 8, 2026
Merged

github-actions[bot] merged 3 commits into
mainfrom
feat/864-wp3-raft-guard

Conversation

@znerol2

@znerol2 znerol2 commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

Summary

The dmf-env half of WP3 in docs/plans/operator-unlock-tier2-plan.md (umbrella). The plan says the upgrade procedure refuses to restart the next OpenBao node while a restarted one is still sealed. This makes upgrade-in-place.sh do that.

On hold until dmf-infra#130 merges. This change calls the guard playbook that PR adds.

Changes

  • upgrade-in-place.sh: stage 1 checks the seal state of every OpenBao pod, not only openbao-0. A new stage 1b runs the dmf-infra rolling-restart guard before any OpenBao restart. On a single replica, the guard passes when that pod is unsealed. --skip-unseal-check keeps its old seal-only meaning and never skips the guard, and no flag skips it.
  • unseal-openbao.sh: gains --status-all. To unseal a specific pod, pass OPENBAO_POD.
  • Tests: tests/upgrade-in-place-guard.sh covers every-pod status, a sealed second pod, and the guard call with the old flag set. It's wired into CI.

Testing

tests/upgrade-in-place-guard.sh passes all cases. tests/wizard-noninteractive-parity.sh fails locally, the same way on an untouched main checkout, because of a local jq/yq version mismatch. CI runs its own versions.

Refs dmfdeploy/dmfdeploy#864

WP3 of the Tier 2 operator unlock plan. upgrade-in-place.sh now checks the
seal state of every OpenBao pod, not only openbao-0, and runs the
rolling-restart guard from dmf-infra before any OpenBao restart. On a
single replica the guard passes when that pod is unsealed.
`--skip-unseal-check` keeps its old seal-only meaning and never skips the
guard. unseal-openbao.sh gains --status-all.

Merge after the dmf-infra change that adds the guard playbook.

Refs dmfdeploy/dmfdeploy#864

Signed-off-by: znerol2 <6800371+znerol2@users.noreply.github.com>
Refs dmfdeploy/dmfdeploy#864

Signed-off-by: znerol2 <6800371+znerol2@users.noreply.github.com>
@znerol2
znerol2 requested a review from a team as a code owner November 7, 2026 18:43
@znerol2 znerol2 added the hold Disarm auto-merge: PR will not land on approval while this label is set label Nov 7, 2026
unseal-openbao.sh required macOS's `security` command in every mode on a
non-sandbox profile. The status modes read seal state over ssh and never
use it, so on a Linux host (the CI runner included) --status and
--status-all exited before printing anything. Require it only to unseal.

Refs dmfdeploy/dmfdeploy#864

Signed-off-by: znerol2 <6800371+znerol2@users.noreply.github.com>

@lkirc lkirc left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Static review complete for b34e164: no blocking findings. The all-pod seal precheck and unconditional restart guard are in place before upgrade stages; the CI change is a scoped test invocation. The existing hold remains for dmf-infra#130.

@znerol2 znerol2 removed the hold Disarm auto-merge: PR will not land on approval while this label is set label Nov 8, 2026
@znerol2

znerol2 commented Nov 8, 2026

Copy link
Copy Markdown
Contributor Author

dmfdeploy/dmf-infra#130 merged, so the guard playbook this change calls is on dmf-infra main. Releasing the hold.

@github-actions
github-actions Bot merged commit 066472b into main Nov 8, 2026
15 checks passed
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.

2 participants