# overlays/vr1-dc1-vips.yaml
# Per-DC VIP overlay for vr1-dc1. GENERATED by scripts/render-dc-overlays.py from
# render/values/vr1-dc1-vips.yaml -- edit the values file and re-render; do not
# hand-edit this file.
#   juju deploy ./bundle.yaml --overlay ./overlays/vr1-dc1-vips.yaml
#
# RULING 3 (2026-07-25) made bundle.yaml VIP-FREE, so this file is the ONLY source of
# vr1-dc1'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-dc1
#   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.64.50 10.12.68.50 10.12.72.50 2602:f3e2:f03:11::50 fd50:840e:74e2:320::50 fd50:840e:74e2:321::50"
  barbican:
    options:
      vip: "10.12.64.51 10.12.68.51 10.12.72.51 2602:f3e2:f03:11::51 fd50:840e:74e2:320::51 fd50:840e:74e2:321::51"
  cinder:
    options:
      vip: "10.12.64.52 10.12.68.52 10.12.72.52 2602:f3e2:f03:11::52 fd50:840e:74e2:320::52 fd50:840e:74e2:321::52"
  glance:
    options:
      vip: "10.12.64.53 10.12.68.53 10.12.72.53 2602:f3e2:f03:11::53 fd50:840e:74e2:320::53 fd50:840e:74e2:321::53"
  magnum:
    options:
      vip: "10.12.64.54 10.12.68.54 10.12.72.54 2602:f3e2:f03:11::54 fd50:840e:74e2:320::54 fd50:840e:74e2:321::54"
  neutron-api:
    options:
      vip: "10.12.64.55 10.12.68.55 10.12.72.55 2602:f3e2:f03:11::55 fd50:840e:74e2:320::55 fd50:840e:74e2:321::55"
  nova-cloud-controller:
    options:
      vip: "10.12.64.56 10.12.68.56 10.12.72.56 2602:f3e2:f03:11::56 fd50:840e:74e2:320::56 fd50:840e:74e2:321::56"
  octavia:
    options:
      vip: "10.12.64.57 10.12.68.57 10.12.72.57 2602:f3e2:f03:11::57 fd50:840e:74e2:320::57 fd50:840e:74e2:321::57"
  openstack-dashboard:
    options:
      vip: "10.12.64.58 10.12.68.58 10.12.72.58 2602:f3e2:f03:11::58 fd50:840e:74e2:320::58 fd50:840e:74e2:321::58"
  placement:
    options:
      vip: "10.12.64.59 10.12.68.59 10.12.72.59 2602:f3e2:f03:11::59 fd50:840e:74e2:320::59 fd50:840e:74e2:321::59"
  ceph-radosgw:
    options:
      vip: "10.12.64.60 10.12.68.60 10.12.72.60 2602:f3e2:f03:11::60 fd50:840e:74e2:320::60 fd50:840e:74e2:321::60"
  vault:
    options:
      vip: "10.12.64.61 10.12.68.61 10.12.72.61 2602:f3e2:f03:11::61 fd50:840e:74e2:320::61 fd50:840e:74e2:321::61"
  designate:
    options:
      vip: "10.12.64.62 10.12.68.62 10.12.72.62 2602:f3e2:f03:11::62 fd50:840e:74e2:320::62 fd50:840e:74e2:321::62"
