|
Five Stage-5 findings raised, none executed: R7's per-DC Octavia PKI is half built
F1 (HIGH): the D-109 amendment rules per-DC independent Octavia CAs, and the 2026-07-29 work correctly made the CA subject and the VIP gate per-DC -- but $DC appears in no PATH. phase-01-bundle-deploy.md:293 is a fixed $HOME/octavia-pki and :473 writes a fixed overlays/octavia-pki.yaml, so generating dc1 after dc0 overwrites dc0's issuing-CA key, controller-CA key and both passphrases, and a later dc0 redeploy reads the fixed overlay name and applies dc1's CA to dc0 -- the cross-DC shared amphora root R7 explicitly refused. The existence checks at phase-01:86 and pre-flight-checks.sh:65 cannot detect it: they ask whether the file exists, never whose CA it is. The gap is in R7's own "Work implied" list. F2: creds-matrix.tsv:103-111 declares all nine Octavia credentials `singleton`, while creds-matrix.py:368-398 enforces both-DC existence only for `per-DC` rows -- so the register behind the BLOCKING P5 gate is structurally blind to a missing second PKI set. Baseline captured (82 rows, 7 findings, exit 1) so the delta is attributable. Must land before generation. F3: both ~/octavia-pki/ and overlays/octavia-pki.yaml are ABSENT (existence only, no contents read), so F1/F2 are fixable at zero risk right now; the window closes when the first DC's PKI is generated. F4: .gitignore:40 is an exact path, so a per-DC overlay rename would un-ignore a file holding CA key blobs plus a plaintext passphrase, in a repo SEC-004 records as PUBLIC. The F1 fix must widen the glob in the same commit. F5: preflight.sh:99 sets DC without exporting it and pre-flight-checks.sh never reads DC at all, so a dc1 invocation runs a DC-aware P2 beside a dc0-frozen P4 under one combined verdict. Logged not executed per hard rule 1. repo-lint 0 fail / 615 files. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HvCyrwvYTTcDYnRErfMsNf |
|---|
|
|
| docs/CURRENT-STATE.md |
|---|
| docs/audit/stage5-findings-20260729-successor.md 0 → 100644 |
|---|