|
R7 RULED: per-DC independent Octavia PKI (D-109 amendment)
GA-R5: question and exact utterance quoted, dated, pushed before dependent work. Operator utterance: "Per-DC independent Octavia PKI; fix the generator first (Recommended)". Recorded as a D-109 AMENDMENT. D-109 established per-DC INDEPENDENT Vault roots with a DR-honest rationale but never mentioned the Octavia amphora control-plane PKI, which is a SEPARATE trust domain with its own CA generated outside Vault by phase-01 step 1.0-GEN. This extends the same posture to it. MEASURED REFINEMENT THAT NARROWS THE WORK. The generator is dc0-frozen in two ways of DIFFERENT severity, and only one is a design problem: - The CA SUBJECT is a baked literal, "/CN=VR0 DC0 Omega Cloud Octavia Controller CA/O=Neumatrix". Reusing it roots dc1's amphora chain in a VR0-DC0-named CA. - The controller cert's SAN is ALREADY DERIVED per-DC by design -- the step states it carries the controller FQDN, octavia API FQDN and the Octavia API VIP "derived from the bundle at generation time -- DOCFIX-067; never a baked literal". That half needs no change at all. - The actual blocker is the VIP gate, grep -qE '^10\.12\.4\.', which accepts only dc0's band while dc1's octavia VIP is 10.12.64.57 and lives in an overlay. A DOCFIX was owed regardless of the ruling: the generator cannot produce a dc1 artifact as written, and phase-01:144-145 hard-ABORTS the deploy when overlays/octavia-pki.yaml is absent, which it is. Option (c) would therefore have deferred only the part D-109 already answers by precedent while leaving the required work untouched. REUSE REFUSED ON POSTURE. The overlay carries CA private keys plus a plaintext issuing-CA passphrase inside the repo clone, and SEC-004 records the repo as still PUBLIC. Sharing one amphora control-plane CA private key across two clouds D-100 defines as independent would widen an existing exposure rather than contain it, in a commercial multi-tenant cloud with hard tenant isolation. Independent per-DC CAs keep that blast radius to one DC. CAVEAT CARRIED FORWARD, because it will bite otherwise: the generator's VIP gate must be re-pointed at the MERGED deploy input rather than bundle.yaml. Left reading the base bundle it breaks again the moment ruling-3's VIP extraction and R11's new .61/.62 allocations land. Roosevelt analog: per-DC amphora CAs match per-DC IPMI/BMC credentials and the per-DC MAAS power keys of SEC-012/-016 -- the same no-cross-DC-shared-secret principle already ruled twice in this deployment. Revert: git revert this commit; the amendment is additive. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HvCyrwvYTTcDYnRErfMsNf |
|---|
|
|
| docs/CURRENT-STATE.md |
|---|
| docs/audit/queued-rulings-20260727.md |
|---|
| docs/design-decisions.md |
|---|