# overlays/vr1-dc0-vips.yaml
# Per-DC VIP overlay for vr1-dc0. GENERATED by scripts/render-dc-overlays.py from
# render/values/vr1-dc0-vips.yaml -- edit the values file and re-render; do not
# hand-edit this file.
#   juju deploy ./bundle.yaml --overlay ./overlays/vr1-dc0-vips.yaml
#
# RULING 3 (2026-07-25) made bundle.yaml VIP-FREE, so this file is the ONLY source of
# vr1-dc0's VIPs and the bundle is not deployable without it.
#
# DUAL-FAMILY per R2 (RULED 2026-07-27): each vip carries the three v4 legs THEN the
# three v6 legs. Column order is provider-public / metal-admin / metal-internal,
# v4 then v6.
#
# `prefer-ipv6: true` IS EMITTED ONLY FOR THE SEVEN CHARMS THAT DECLARE IT (RULED
# 2026-07-31, D-101 RULING NOTE: "Yes -- keep the v6 legs, remove only the option").
# The six that do not -- barbican, designate, magnum, octavia, placement, vault --
# keep every v6 leg and simply do not get the option; juju rejects the WHOLE bundle
# on an unknown option, which killed deploy attempt 1 on 2026-07-31. The option is
# NOT what makes HAProxy bind :::port: that is gated on the kernel disable_ipv6
# sysctl, and pacemaker picks IPv6addr by address-family detection
# (docs/audit/stage5-prefer-ipv6-charm-research-20260731.txt). Where it IS legal it
# still travels with the v6 legs -- provider-bundle-check invariant 9b. The
# charm list lives in provider-bundle-check.py PREFER_IPV6_CHARMS and the renderer
# READS it; it is a PINNED MEASUREMENT, re-measure if a channel pin moves.
#   v4 prefixes  MEASURED from scripts/lib-net.sh lib_net_select_dc vr1-dc0
#   v6 prefixes  READ FROM THE NETBOX APEX (D-136 option (D)); the provider leg uses
#                the DEDICATED GUA VIP /64, admin+internal their own plane /64s
#   v6 host part MIRRORS the v4 octet textually (RULED 2026-07-27) -- .50 -> ::50
#
# vault .61 and designate .62 are R11 (a D-020 AMENDMENT, 2026-07-27). Per R6 these
# land BEFORE overlays/dc-ha-scaleup.yaml, which is what gives vault a real HA target.
# The B1 / B5 tokens below are DEFINED in bundle.yaml's own header block.
applications:
  keystone:
    options:
      vip: "10.12.4.50 10.12.8.50 10.12.12.50 2602:f3e2:f02:11::50 2602:f3e2:f02:20::50 2602:f3e2:f02:21::50" # B1 front-loaded VIP; IS the catalog endpoint (B5, no os-public-hostname)
  barbican:
    options:
      vip: "10.12.4.51 10.12.8.51 10.12.12.51 2602:f3e2:f02:11::51 2602:f3e2:f02:20::51 2602:f3e2:f02:21::51" # B1
  cinder:
    options:
      vip: "10.12.4.52 10.12.8.52 10.12.12.52 2602:f3e2:f02:11::52 2602:f3e2:f02:20::52 2602:f3e2:f02:21::52" # B1
  glance:
    options:
      vip: "10.12.4.53 10.12.8.53 10.12.12.53 2602:f3e2:f02:11::53 2602:f3e2:f02:20::53 2602:f3e2:f02:21::53" # B1
  magnum:
    options:
      vip: "10.12.4.54 10.12.8.54 10.12.12.54 2602:f3e2:f02:11::54 2602:f3e2:f02:20::54 2602:f3e2:f02:21::54" # B1
  neutron-api:
    options:
      vip: "10.12.4.55 10.12.8.55 10.12.12.55 2602:f3e2:f02:11::55 2602:f3e2:f02:20::55 2602:f3e2:f02:21::55" # B1
  nova-cloud-controller:
    options:
      vip: "10.12.4.56 10.12.8.56 10.12.12.56 2602:f3e2:f02:11::56 2602:f3e2:f02:20::56 2602:f3e2:f02:21::56" # B1
  octavia:
    options:
      vip: "10.12.4.57 10.12.8.57 10.12.12.57 2602:f3e2:f02:11::57 2602:f3e2:f02:20::57 2602:f3e2:f02:21::57" # B1
  openstack-dashboard:
    options:
      vip: "10.12.4.58 10.12.8.58 10.12.12.58 2602:f3e2:f02:11::58 2602:f3e2:f02:20::58 2602:f3e2:f02:21::58" # B1 -- browse HTTPS by IP (B5); ALLOWED_HOSTS must permit the VIP IP (verify at deploy)
  placement:
    options:
      vip: "10.12.4.59 10.12.8.59 10.12.12.59 2602:f3e2:f02:11::59 2602:f3e2:f02:20::59 2602:f3e2:f02:21::59" # B1
  ceph-radosgw:
    options:
      vip: "10.12.4.60 10.12.8.60 10.12.12.60 2602:f3e2:f02:11::60 2602:f3e2:f02:20::60 2602:f3e2:f02:21::60" # B1 -- radosgw HA un-deferred for Roosevelt fidelity (decorative HA on testcloud)
  vault:
    options:
      vip: "10.12.4.61 10.12.8.61 10.12.12.61 2602:f3e2:f02:11::61 2602:f3e2:f02:20::61 2602:f3e2:f02:21::61" # R11 (D-020 amendment) -- was ruled in D-020's own enumeration and never built
  designate:
    options:
      vip: "10.12.4.62 10.12.8.62 10.12.12.62 2602:f3e2:f02:11::62 2602:f3e2:f02:20::62 2602:f3e2:f02:21::62" # R11 (D-020 amendment) -- NEW to D-020's enumeration; dnsaas is already provider-bound
