|
R4 RULED: reserved bands become enforced in MAAS via a DC-aware tool (D-134 amendment)
GA-R5: question and exact utterance quoted, dated, pushed before dependent work. Operator utterance: "Build a DC-aware tool; full v4 scheme + FIP now, v6 bands after the carve (Recommended)". MEASURED BEFORE ASKING, which sharpened the question considerably. The defect is worse than "bands not enforced": D-134's band table has never existed anywhere but prose. maas admin ipranges read returns THREE ranges cloud-wide, ALL type=dynamic, ZERO reserved. The collision is now QUANTIFIED rather than hypothetical. MAAS's own subnet unreserved-ip-ranges for dc1 metal-admin reports its lowest free span as 10.12.68.5-.99 (95 addrs) -- precisely the .4-.49 utility band and the whole .50-.99 VIP band. Against that, the dc1 bundle places 27 LXD units in base form and ~55 once dc-ha-scaleup scales 14 applications, each needing a MAAS-allocated address, and the VIP band is where the 33 per-DC VIPs live. Zero 10.12.* addresses are allocated today, so this is a PRE-EMPTION and not an incident. MAAS's exact allocation ORDER is deliberately NOT asserted -- lens 2 was right to refuse that claim and I have not added it. Confirmed there is genuinely NO VR1 path: only site-headend-install.sh (office1-only) and phase-00-maas-standup.sh can create an iprange, and the latter REFUSES for any non-VR0 DC. That refusal is CORRECT -- it is the cross-DC mixing guard lib-net's selector exists to enforce. The gap is that nothing replaced it. NEW ARCHITECTURAL CONTENT, and it exists because of R2: D-134's bands are v4-only. Ruling dual-stack made the 33 VIPs dual-family, which left the v6 planes with no band discipline at all and the same collision waiting in the other family. The amendment establishes that the v6 planes inherit an equivalent scheme. The exact v6 octet mapping is NOT ruled -- mirroring the v4 host-part layout is the obvious mechanical default, not a fresh design question. The v6 pass following the carve is FORCED SEQUENCING, not a deferral: a reserved range cannot be created on a subnet that does not yet exist, and the v6 plane subnets are not in MAAS. Worth noting what the tool buys beyond the reservation itself: a `check` arm gives D-134 an EXECUTABLE gate. Today nothing in the repo can detect that the bands are unenforced, which is why this survived from 2026-07-23 to now. Execution is a separate gated step. Standard delivery discipline applies to the tool (harness green, gauntlet, repo-lint, changelog with revert); the 12-subnet reservation pass is an operator-gated live MAAS mutation and is not batched with it. 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 |
|---|