|
provider-bundle-check: overlay merge + per-DC VIP bands + placement invariants
The committee's non-negotiable placement "spine" so the vr1-dc1 render is machine-checked, not eyeballed. The checker was placement-blind (D-052 bindings + mysql=3 only), so any render could silently ship decorative HA. - --overlay FILE: juju-like merge -> validates the EFFECTIVE deploy input - --dc vr1-dc0|vr1-dc1: per-DC VIP bands (default dc0 = base; un-param run byte-identical to before). Closes the dc1-VIP-outside-the-check gap. - placement invariants (fire only on a role-separated machines block, self-skip on the base bundle): no dangling to:; LXD->control, ceph-osd->storage, nova-compute->compute; num_units>=2 spread across that many DISTINCT machines (anti-affinity); ceph-osd==storage count, nova-compute==compute count. Harness 15/15 (7 new behavioral cases); gauntlet ALL GREEN (78); repo-lint 0 fail. Machines-block overlay merge is confirmed at `juju deploy --dry-run` (VERIFY-LIVE). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VUjEb7onHpdqFHUnio6iVw |
|---|
|
|
| docs/changelog-20260724-stage5-committee-fork1.md |
|---|
| scripts/provider-bundle-check.py |
|---|
| tests/provider-bundle-check/run-tests.sh |
|---|