openbao: make verify-parity --all host-aware #149
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Jinemi/thermograph#149
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/parity-all-host-aware"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
--allexpanded to(dev beta prod)and then tried to check all three from wherever it ran. No host carries all three — dev is on vps1, beta and prod are on vps2 — so--allcould not succeed anywhere, and the way it failed was misleading rather than obvious: on vps1, prod resolvesTG_BAO_APPROLEto/etc/thermograph/openbao-approle, which on that box holds dev's credential, so prod's check authenticated astg-devand took a 403 fromtg-host-prod.hcl. That reads like a policy bug. It is "wrong box".The README has shown
verify-parity.sh --allas usable since it was written.--allnow means "every environment that lives on this host". Residency is decided by the environment's own address being bound locally (TG_SSH_HOSTagainst the local interfaces), and skips are announced, never silent.Residency is deliberately not
TG_APP_DIRThat was my first attempt and it was wrong — caught by testing on the real hosts rather than reasoning about them. vps1 still carries a stale
/opt/thermographfrom before the estate split (d5357d0, #106), so prod looked resident there and got checked anyway. A leftover directory is exactly the kind of thing that outlives the arrangement it belonged to. Both hosts bind their public IP directly, so the address is authoritative where the directory is not.(That stale checkout is worth removing separately — it is a full tree with its own
infra/openbao/andops-cron.ymlon the one boxtg-host-dev.hclexists to keep away from prod's secrets.)Zero checked is now a failure
Previously a run that skipped everything exited 0. A green run is precisely what the 7-day cutover gate counts, so "nothing was wrong" and "nothing was examined" must not look alike. The success line now reports how many were checked and states plainly that a green run on one host says nothing about the other.
Live-verified on both boxes
Both failures are the three known stale
common.yamlkeys awaitingseed-from-sops.sh --env common, not a regression.Note the nightly
secrets-parityjob added in #143 already uses explicit--envper host, so it was never affected — this fixes the by-hand path an operator would reach for.