Envoy Gateway and the Move from Traefik to Gateway API
infrastructureThree shared gateways replace Traefik-style CRDs — with Headscale as a worked example (public API, private UI).
The lab used to run Traefik with its own CRDs (IngressRoute, Middleware,
and friends). Gateway API standardises routes; Envoy Gateway
is the controller here — one Helm install, three shared Gateways, and per-app HTTPRoute resources instead
of Traefik-only objects.
Traefik is excellent at the edge, but its CRDs are controller-specific. Moving to Gateway API was less about
feature envy and more about portability: the same HTTPRoute can be read by another implementation if you
ever switch controllers. Envoy Gateway is the implementation here; the routes stay standard Kubernetes objects.