|
R11 RULED: vault .61 and designate .62, dual-family triples (D-020 amendment)
GA-R5: question and exact utterance quoted, dated, pushed before dependent work. Operator utterance: "Both full triples (.61 vault, .62 designate), dual-family, and fix the gate (Recommended)". THE FINDING THAT MEASURING FIRST PRODUCED: vault was ALREADY RULED and never built. D-020's decision text enumerates vault BY NAME among the clustered applications carrying both a provider and a metal VIP; measured, base vault is num_units:1 with an EMPTY options block. This is a conformance repair of a 2026-era decision, not a new choice -- and it is the SECOND ruled decision this audit has found unimplemented, after D-134's address bands (R4). Worth stating plainly: the pattern is ruled-but-never-built, and nothing in the repo could detect either case. designate is genuinely new -- absent from D-020's enumeration -- so it needed a ruling rather than a repair, and this amendment adds it. Its dnsaas endpoint is already bound provider-public, so a provider leg is coherent for it. Shape is the ESTABLISHED triple, not a new form. The measured octet map is consecutive: keystone .50 through ceph-radosgw .60, all provider/admin/internal triples. vault takes .61, designate .62, both dual-family per R2 -- adding v4-only now and re-doing them later would mean re-issuing certificate SANs on a live cloud, and for vault that is 23 certificate relations. Option (b), vault metal-only per the 2026-07-25 expansion review, was refused and the conflict is RECORDED so that proposal is not later mistaken for the ruled position: it has a real technical argument (all 23 vault consumers are internal) but it contradicts D-020's own enumeration and would leave vault the single non-triple in the bundle, a permanent special case for the checker. Mechanical consequences, no choice in them: .61/.62 are legal under D-134's amended .50-.99 band but REJECTED by the gate today -- provider-bundle-check.py holds OCTET_LO/HI = 50,60 and lib-net.sh holds VIP_OCTET_MAX=60. These are SEPARATELY NAMED constants in two files, so widening the band is a two-file change (L3-7). VIP_COUNT_EXPECT moves 11 -> 13. Gate hardening ruled IN SCOPE rather than deferred: the checker learns to FAIL on an application with an hacluster relation and no vip. Justification is measured -- grep -rn cluster_count scripts/ tests/ returns NOTHING, and a constructed overlay rewriting all 20 cluster_count values 3 -> 1 yields a byte-identical PASS (L4-3). That is exactly why decorative HA was found by an audit instead of by a gate. Per the R6 ruling, these VIPs land BEFORE dc-ha-scaleup.yaml is applied. Execution is a separate gated step. 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 |
|---|