One tunnel, three cloudflared connectors
Exact routes and the Kubernetes wildcard
One wildcard Cloudflare Access application
Managing the tunnel, DNS and Access in Terraform
QUIC and outbound-only connectivity
What stays off the tunnel
Tech stack
- Cloudflare Tunnel, remotely managed, with three cloudflared connectors (one Docker, two Kubernetes replicas) connecting over QUIC
- Cloudflare Access with one wildcard self-hosted application, Google as the only identity provider, and a Service Auth policy for service tokens
- Envoy Gateway and Gateway API HTTPRoutes behind the *.mccarn.tech tunnel route
- Split DNS so LAN and Tailscale clients reach Envoy directly
- Terraform with the Cloudflare provider (v5) for the tunnel, its ingress configuration, DNS and Access
- Atlantis for pull-request plans and applies, with a nightly drift check
- Flux for the Kubernetes side, including HTTPRoutes