refactor(platform): remove k8gb — replaced by PowerDNS lua-records (#171)
PowerDNS lua-records (`ifurlup`, `pickclosest`, `ifportup`) cover everything
k8gb was doing — geo-aware response selection, health-checked failover,
weighted round-robin — at the authoritative DNS layer. Eliminates a
separate K8s controller, CRD set, and CoreDNS plugin from every Sovereign.
Changes:
- platform/k8gb/ deleted (Chart.yaml, values.yaml, blueprint.yaml never
authored — only README existed)
- products/catalyst/bootstrap/ui/public/component-logos/k8gb.svg deleted
- componentGroups.ts: remove k8gb component (PowerDNS already there)
- componentLogos.tsx: drop logo_k8gb + k8gb map entry
- model.ts DEFAULT_COMPONENT_GROUPS spine: replace k8gb with powerdns
- StepInfrastructure.tsx: copy refers to PowerDNS lua-records, not k8gb
- provision.html: replace k8gb tile and edges with powerdns
- catalog.generated.ts regenerated (now includes bp-powerdns)
- docs sweep — every k8gb reference in PLATFORM-TECH-STACK, NAMING-
CONVENTION, SOVEREIGN-PROVISIONING, SRE, ARCHITECTURE, GLOSSARY,
COMPONENT-LOGOS, IMPLEMENTATION-STATUS, BUSINESS-STRATEGY,
TECHNOLOGY-FORECAST, README, infra/hetzner/README, platform READMEs
(cilium, external-dns, failover-controller, litmus, flux, opentofu)
rewritten to point at PowerDNS lua-records / MULTI-REGION-DNS.md.
Historical entries in VALIDATION-LOG.md preserved as audit trail.
- New docs/MULTI-REGION-DNS.md — canonical reference for the lua-record
patterns (ifurlup all/pickclosest/pickfirst, ifportup, pickwhashed),
Application Placement → lua-record selector mapping, when to add a
second Sovereign region, operational checks.
Closes #171.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>