Files
home-network-k3s-impl/platform/gateway
jakman85andClaude Opus 5.5 a1e808e697
gate / gate (pull_request) Successful in 1m46s
gate / conformance (pull_request) Has been skipped
feat(dns): publish Gateway names to the WAN via in-cluster DDNS
Gateway-published records now CNAME to wan.${BASE_DOMAIN}, which a
favonia/cloudflare-ddns Deployment keeps at the home WAN's current public
IP. Operator decision: every Gateway-published name goes public; internal
services (controller: none) remain unpublished.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-03 16:59:53 -05:00
..

platform/gateway

Gateway API (north-south ingress) implemented by Cilium + the shared HTTPS Gateway and the wildcard TLS certificate.

What this stub is

  • GatewayClass cilium — Gateway API implemented by Cilium; no separate ingress controller (ADR-0002).
  • Gateway shared — HTTPS listener on *.home.keithjackson.dev, TLS terminated with the wildcard cert. App HTTPRoutes attach cross-namespace via a namespace label + ReferenceGrant (rendered by WS-APPS from each ServiceDefinition's exposure).
  • Certificate wildcard-home — *.home.keithjackson.dev issued by ${ACME_CLUSTER_ISSUER} (staging in dev, prod in prod — R-ENV-02). Makes onboarding certificate-free (ADR-0006 default).

Contract (Issuer + Gateway TLS)

The "Issuer + Gateway TLS" interface (roadmap/workstreams.md): this Gateway + wildcard cert are what every service's HTTPRoute attaches to. ExternalDNS (../externaldns) publishes the public records for hostnames routed here. Ingress opens north-south only — it does not relax east-west default-deny (docs/09).

TODO (later phases)

  • Phase 2 (WS-NET): pin the L2-announced ingress VIP / IP pool (Cilium L2 announcement, docs/09); add the HTTP→HTTPS redirect route; confirm the cross-namespace ReferenceGrant pattern with WS-APPS.
  • Public exposure is a manual edge port-forward of 80/443 to the Gateway VIP (single SOHO router, docs/09) — a documented manual step, the analogue of the old pfSense exception.