Skip to content

Add rollout rehearsal verification#92

Merged
chrisbliss18 merged 4 commits intov2from
feature/v2-rollout-docs-rehearsal-refresh
Apr 30, 2026
Merged

Add rollout rehearsal verification#92
chrisbliss18 merged 4 commits intov2from
feature/v2-rollout-docs-rehearsal-refresh

Conversation

@chrisbliss18
Copy link
Copy Markdown
Contributor

Why

This adds a focused rehearsal-verification pass for the v1-to-v2 rollout docs and CLI output. The rollout path is intentionally operator-heavy, so the generated plans, guided dry-run output, runtime-host warnings, typed confirmations, rollback commands, and docs need to stay aligned before a production cutover.

What changed

  • Adds make rollout-rehearsal-verify.
  • Adds scripts/rollout-rehearsal-verify.sh, a no-database verifier for same-server generated rehearsal plans, fresh-server generated rehearsal plans, guided same-server dry-runs, guided fresh-server dry-runs, and guided rollback dry-runs.
  • Wires the rehearsal verifier into make rollout-docs-verify.
  • Documents the verifier in the migration runbook and rollout quick reference.
  • Tracks and completes the branch checklist in docs/roadmap.md.
  • Hardens the verifier by using mktemp, cleaning its default workspace, checking the configured binary, and refusing to overwrite custom plan files without ROLLOUT_REHEARSAL_OVERWRITE_PLAN=1.
  • Clarifies that the rehearsal verifier uses a disposable sample plan and does not replace real host-preflight or VM lab rehearsal.

Validation

  • make rollout-rehearsal-verify
  • make rollout-docs-verify
  • make rollout-vm-lab-doctor
  • make rollout-vm-lab-snapshot-all-smoke
  • bash -n scripts/rollout-rehearsal-verify.sh scripts/rollout-docs-verify.sh
  • shellcheck scripts/rollout-rehearsal-verify.sh scripts/rollout-docs-verify.sh
  • Existing-plan refusal path for ROLLOUT_REHEARSAL_PLAN_FILE
  • make test-race

Chris Jean added 4 commits April 30, 2026 12:46
Create a dedicated no-database rehearsal verifier for the v1-to-v2 rollout flow. The script exercises generated same-server plans, fresh-server plans, guided forward dry-runs, and guided rollback dry-runs, then asserts the critical operator-facing safety details: runtime-host context, fresh-server SSH warnings, hold points, stop/start commands, typed confirmations, rollback gates, and dynamic fleet completion commands.

Wire the verifier into make rollout-rehearsal-verify for fast local checks and into make rollout-docs-verify so command output, docs, and generated runbooks cannot drift independently.

Update the roadmap with the new rehearsal checklist, document the target in the migration and quick-reference docs, and clarify that pinned cutover-check signoff is per v2 runtime host/range rather than a single fleet-wide command.

Validated with make rollout-rehearsal-verify and make rollout-docs-verify.
Mark the VM lab snapshot replay item complete after running make rollout-vm-lab-snapshot-all-smoke against jetmon-deploy-test.

The replay covered execute rollback, interrupted resume, post-start rollback, bad SSH, v2 start failure, runtime guard refusals, real activity from the staged service, and failure-gate refusal flows. No docs/tooling mismatch was found during this pass.
Use mktemp for the rehearsal verifier's default workspace instead of a predictable /tmp path, clean that workspace automatically, and fail early when the configured jetmon2 binary is not executable. Custom work directories remain supported for debugging.

Tighten operator-facing rollout docs by removing redundant release verification commands, calling out that rollout-docs-verify already builds, tests, vets, checks docs, and runs rehearsal verification, and using normal ordered checklist numbering in the quick reference.

Reviewed from sysadmin, security, and engineering perspectives. Validated with bash -n, shellcheck, make rollout-rehearsal-verify, make rollout-docs-verify, and make test-race.
Refuse to overwrite an existing custom ROLLOUT_REHEARSAL_PLAN_FILE unless the caller explicitly opts in with ROLLOUT_REHEARSAL_OVERWRITE_PLAN=1. This prevents a convenience verification script from clobbering a real rollout CSV or a symlinked path by accident.

Also clarify in the quick reference and migration runbook that rollout-rehearsal-verify uses a disposable sample bucket plan. It validates documentation and CLI flow alignment, but it does not replace the real host-preflight gate or VM lab rehearsal.

Validated with the existing-plan refusal path, bash -n, shellcheck, make rollout-rehearsal-verify, make rollout-docs-verify, and make test-race.
@chrisbliss18 chrisbliss18 merged commit 1a402e3 into v2 Apr 30, 2026
@chrisbliss18 chrisbliss18 deleted the feature/v2-rollout-docs-rehearsal-refresh branch April 30, 2026 18:47
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