|
Author both Stage-5 blockers (NOT applied); Octavia merge question resolved
Octavia RESOLVED as a clean negative. The chain audit flagged that octavia-pki.yaml lands last and writes the same applications.octavia.options map as the vips overlay, so under replace semantics octavia would lose its vip and prefer-ipv6 with every offline gate still green. Researched against source: juju 3.6 pins charm v12.1.1, and mergeStructs does dstMap.SetMapIndex(srcKey, srcMapVal) per key for map-kind fields. ApplicationSpec.Options is a Go map, so it deep-merges -- both overlays' keys survive. The merge path is byte-identical between 2.9 and 3.6. The checker's "MIRRORS juju's documented merge" comment is now sourced rather than assumed. Logged: LP #2002371 (Triaged/High, unfixed) -- an EMPTY/null options: key WIPES the base map rather than merging. Our overlays lack that shape and nothing gates against acquiring it. R1 AUTHORED. modules/node-vm gains osd_disk_size_bytes, default 0 = creates nothing; the volume is count-gated and the disk entry appended via concat, so an opted-out node has no extra resource and no plan diff -- precondition 4 verbatim. Four storage nodes per DC set osd_gib = 500: 8 volumes, not 18. 500 GiB is D-121's own budgeted figure (4x500Gi/DC = PASS, 5.31 TiB margin), and D-121 records that footprint as an assumption pending an OSD-sizing decision, so it is evidenced but not separately ruled. Headroom caveat surfaced: dc0 has 2.0T available against 2.0 TiB nominal -- thin-provisioned, so creation is cheap, but there is no room for those OSDs to fill. D-104 AUTHORED. A 10th keyed entry per root, <dc>-juju-01, planning 1 add / 0 change / 0 destroy. The nine role nodes are untouched. 8 GiB / 4 vCPU are the values the capacity gate actually modelled; disk 100 GiB is the authoring value the amendment left open. MACs deliberately empty -- correct only before enlistment, and they must be pinned from measurement after the first apply or this reproduces the 2026-07-21 MAC-regeneration trap. NEITHER IS APPLIED. opentofu-validate PASS on both roots; no apply run. Both are live substrate mutations and individually operator-gated. R1 precondition 3 is NOT satisfied and I am not treating it as such: the amendment requires verifying BEFORE the apply that re-commissioning preserves the D-134 statics and pinned MACs, and that needs live MAAS, absent here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HvCyrwvYTTcDYnRErfMsNf |
|---|
|
|
| docs/changelog-20260728-vip-arity-gate.md |
|---|
| opentofu/modules/node-vm/main.tf |
|---|
| opentofu/modules/node-vm/variables.tf |
|---|
| opentofu/vr1-dc0-substrate/main.tf |
|---|
| opentofu/vr1-dc1-substrate/main.tf |
|---|