diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index c3f939c..6cf0021 100644 --- a/docs/CURRENT-STATE.md +++ b/docs/CURRENT-STATE.md @@ -1343,6 +1343,34 @@ a link-local v6 so v6 is not disabled; pacemaker assigns the v6 VIP by family detection), but **one question is STATED AND NOT ANSWERED: whether a v6 VIP on a container whose eth0 has no global v6 is ROUTABLE.** That is separate from whether the charm installs. + **^ ROOT CAUSE FOUND 2026-07-31, AND IT IS "RULED IS NOT BUILT", NOT A DESIGN GAP.** + Operator, in response to the D3 finding: **"The dual stack configuration was supposed to + have included charms. We have had conversations and decisions were made to approval the dual + stack configuration all the way down."** CHECKED AGAINST THE RECORD RATHER THAN ACCEPTED: + the operator is CORRECT. D-101's 2026-07-25 ruling note carries the verbatim utterances + **"Dual stack to be used where IPv4 is required, IPv6 where IPv6 only makes sense"** and + **"Dual stack deployment for DC0 and DC1"**, and R2 (2026-07-27) re-confirmed it. **A grep + for any decision text covering the LXD CONTAINER layer returns NOTHING** -- dual-stack was + ruled down the stack, the build carried it to planes, nodes and VIPs, and stopped at the + containers, which is where every API charm actually runs. + **THE MECHANISM, MEASURED:** the HOST is fully dual-stacked -- juju built a bridge per plane + on machine 0 and every one carries a global v6 (`br-ex 2602:f3e2:f02:10::100/64`, + `br-enp1s0 fd50:840e:74e2:220::100/64`, `:221`, `:230`, `:240`, `:250`). So the + infrastructure is there. What is missing is anything for MAAS to ALLOCATE: + **`10.12.8.0/22` carries a `dynamic` range `.201-.254` plus the D-134 reserved bands, while + `fd50:840e:74e2:220::/64` carries NO IP RANGES AT ALL.** juju asks MAAS for a container + address on the bound space; MAAS answers v4 from the dynamic range and has nothing to give + for v6, so every container comes up v4-only on a dual-stacked host. The 2026-07-30 migration + record even notes the v6 subnet has "nothing to hand out" -- recorded as DELIBERATE for DHCP + purposes, with the consequence for CONTAINERS never considered. + **THIS INVERTS THE FIX DIRECTION AND THE EARLIER FRAMING IN THIS ENTRY WAS WRONG.** Dropping + `prefer-ipv6` from the seven would make the deploy green by ABANDONING a ruled posture at the + charm layer -- exactly what this repo's rules forbid, and it would leave the dual-family v6 + VIPs sitting on containers with no v6 leg. The ruled fix is to complete dual-stack to the + container layer. **OPEN AND UNVERIFIED, stated because it decides whether that is even + possible: whether juju REQUESTS a v6 address for a container when an allocatable v6 range + exists.** Adding a range is necessary; it is not proven sufficient. That must be measured + before any range is created, not after. **memcached SCALED to 3 in `overlays/dc-ha-scaleup.yaml`** (operator-directed 2026-07-31); its exclusion comment is RE-POINTED rather than left stale. **`ceph-rbd-mirror` is PINNED, NOT SETTLED** -- gap register **item 22** carries four options and the recommendation