diff --git a/clusters/base/homepage.yaml b/clusters/base/homepage.yaml index 716b83d..e55e8ab 100644 --- a/clusters/base/homepage.yaml +++ b/clusters/base/homepage.yaml @@ -34,8 +34,12 @@ spec: kind: GitRepository name: flux-system path: ./platform/homepage - # Homepage references no ${VARS} today; the substitution is retained for parity with the other - # tiers / future overlay knobs. + # LOAD-BEARING, not parity decoration (the comment here used to say the opposite). This component + # references ${BASE_DOMAIN} in TWO places: httproute.yaml's apex hostname, and EVERY tile href in + # configmap.yaml. Without this substitution the token is applied LITERALLY — the apex route binds + # the host `${BASE_DOMAIN}`, which matches no Gateway listener, and every link on the operator's + # front door points at a host that does not exist — while Flux still reports this Kustomization + # Ready. It fails OPEN. Asserted by conformance/tests/l0-static/c2-root-surface (5). postBuild: substituteFrom: - kind: ConfigMap diff --git a/platform/homepage/configmap.yaml b/platform/homepage/configmap.yaml index 8819a10..809e517 100644 --- a/platform/homepage/configmap.yaml +++ b/platform/homepage/configmap.yaml @@ -81,6 +81,18 @@ data: href: https://qbittorrent.${BASE_DOMAIN} description: Download client (VPN egress) icon: mdi-download-network + # Crafty Controller — a running, north-south-exposed web UI (platform/crafty/httproute.yaml, + # reconciled by clusters/base/crafty.yaml) that this dashboard did NOT surface until + # 2026-09-13. R-C2-01 says the root MUST surface "the services running in the cluster and + # links to them", so an unsurfaced route is a requirement gap, not a styling preference — + # conformance/tests/l0-static/c2-root-surface fails on one now. Grouped under Media because + # it manages game servers; regrouping it under Platform would be purely cosmetic. The game + # ports themselves (crafty-mc.${BASE_DOMAIN}, TCP 25565-25567 / UDP 19132-19134) are an L4 + # LoadBalancer with no browsable URL, so this tile is how they are surfaced. + - Crafty: + href: https://crafty.${BASE_DOMAIN} + description: Minecraft server manager (Keycloak-gated) + icon: mdi-minecraft - Network & Infra: - Pi-hole: