Copyright © KC Green

Cert-Manager

Envoy Gateway and the Move from Traefik to Gateway API

 infrastructure 

Three 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.