cloudflare-tunnel-ingress-controller
CLAUDE.md1.2k starsChanged 4 months agoMITView on GitHub
This is a Kubernetes Ingress Controller that integrates with Cloudflare Tunnel to expose Kubernetes services to the internet securely without requiring port forwarding or firewall configuration. It watches Kubernetes Ingress resources and automatically configures Cloudflare Tunnels to route traffic to the corresponding services. For the data flow, DNS ownership model, and connector reconciliation design, see the architecture explanation. Pre-commit hooks are managed via prek (configured in prek.toml). Hooks run gofmt, go vet, and golangci-lint automatically before each commit. Run make…
Trending
Less talk lately.about the whole repository
Who's talking about STRRL/cloudflare-tunnel-ingress-controller
- cloudflare/cloudflare-ingress-controller“Hi Community! I create a successor for this project!”GitHub · Jun 30, 2023 · 7 reactions
- ori-edge/k8s_gateway“Feature Request: Add ability to include/exclude specific ingress class names”GitHub · Dec 31, 2023 · 1 reactions
- vicsufer/homelab“Update Helm release cloudflare-tunnel-ingress-controller to v0.1.0”GitHub · Oct 22, 2026
- vicsufer/homelab“Update Helm release cloudflare-tunnel-ingress-controller to v0.0.24”GitHub · Oct 22, 2026
- OneLiteFeatherNET/Kubernetes-FLUX“chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.1.0”GitHub · Oct 12, 2026
The biggest 5 of 50 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 50
Talked about on GitHub (50 times).
On GitHub · 50
- Jun 30, 2023Hi Community! I create a successor for this project! — cloudflare/cloudflare-ingress-controller7 reactions
- Dec 31, 2023Feature Request: Add ability to include/exclude specific ingress class names — ori-edge/k8s_gateway1 reaction · 2 comments
- Oct 22, 2026Update Helm release cloudflare-tunnel-ingress-controller to v0.1.0 — vicsufer/homelab0 reactions
- Oct 22, 2026Update Helm release cloudflare-tunnel-ingress-controller to v0.0.24 — vicsufer/homelab0 reactions
- Oct 12, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.1.0 — OneLiteFeatherNET/Kubernetes-FLUX0 reactions · 1 comment
45 more on GitHub
- Oct 8, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.1.0 — AkatukiSora/k8s-deploys0 reactions
- Oct 1, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.1.0 — andrewzn69/infra0 reactions
- Sep 13, 2026Update Helm release cloudflare-tunnel-ingress-controller to v0.1.0 — mergwyn/cluster-gitops0 reactions
- Sep 7, 2026chore(deps): update cloudflare-tunnel-ingress-controller to v0.1.0 — UnstoppableMango/the-cluster0 reactions
- Aug 13, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.1.0 — VoyTechnology/homelab0 reactions
- Aug 12, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.1.0 — mpearlst/kubernetes-configs0 reactions
- Aug 12, 2026Update Helm release cloudflare-tunnel-ingress-controller to v0.1.0 — chik4ge-homelab/homelab-applications0 reactions
- Aug 12, 2026chore(deps): update flux cloudflare-tunnel-ingress-controller to v0.1.0 — Soli0222/pke0 reactions · 4 comments
- Jul 30, 2026Update Helm release cloudflare-tunnel-ingress-controller to v0.0.24 — thaum-xyz/ankhmorpork0 reactions
- Jul 26, 2026chore(deps): Update non-breaking updates — Walkmana-25/homelab0 reactions
- Jul 25, 2026Update Helm release cloudflare-tunnel-ingress-controller to v0.0.24 — mergwyn/cluster-gitops0 reactions
- Jul 23, 2026Update Helm release cloudflare-tunnel-ingress-controller to v0.0.24 — chik4ge-homelab/homelab-applications0 reactions
- Jul 20, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.24 — mpearlst/kubernetes-configs0 reactions
- Jul 20, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.24 — toof-jp/infra0 reactions · 1 comment
- Jul 20, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.24 — VoyTechnology/homelab0 reactions
- Jul 20, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.24 — nakatanakatana/x0 reactions
- Jul 20, 2026chore(deps): update flux cloudflare-tunnel-ingress-controller to v0.0.24 — Soli0222/pke0 reactions · 2 comments
- Jul 16, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.23 — toof-jp/infra0 reactions
- Mar 23, 2026chore(deps): update cr.strrl.dev/strrl/cloudflare-tunnel-ingress-controller docker tag to v0.0.23 — mergwyn/cluster-gitops0 reactions
- Mar 23, 2026Update Helm release cloudflare-tunnel-ingress-controller to v0.0.23 — UnstoppableMango/the-cluster0 reactions
- Mar 23, 2026Update ghcr.io/strrl/cloudflare-tunnel-ingress-controller Docker tag to v0.0.23 — UnstoppableMango/the-cluster0 reactions
- Mar 21, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.23 — mpearlst/kubernetes-configs0 reactions
- Mar 21, 2026Update Helm release cloudflare-tunnel-ingress-controller to v0.0.23 — andrewzn69/kubernetes0 reactions
- Mar 20, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.23 — SparksD2145/flux-infra0 reactions
- Mar 20, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.23 — nakatanakatana/x0 reactions
- Mar 20, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.23 — chik4ge-homelab/homelab-applications0 reactions
- Feb 23, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.23 — mergwyn/cluster-gitops0 reactions
- Feb 12, 2026chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.23 - autoclosed — vaughnw128/immanent-grove0 reactions · 3 comments
- Feb 12, 2026Update Helm release cloudflare-tunnel-ingress-controller to v0.0.23 — letThemPlay/home-gitops0 reactions
- Dec 22, 2025chore(deps): update hosting infrastructure — thaum-xyz/ankhmorpork0 reactions
- Dec 5, 2025chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.21 — thaum-xyz/ankhmorpork0 reactions
- Nov 10, 2025chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.23 — VoyTechnology/homelab0 reactions
- Nov 10, 2025Update Helm release cloudflare-tunnel-ingress-controller to v0.0.21 — UnstoppableMango/the-cluster0 reactions
- Nov 10, 2025Update ghcr.io/strrl/cloudflare-tunnel-ingress-controller Docker tag to v0.0.21 — UnstoppableMango/the-cluster0 reactions
- Nov 6, 2025chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.21 — mergwyn/cluster-gitops0 reactions
- Nov 4, 2025chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.21 — SparksD2145/flux-infra0 reactions
- Nov 3, 2025chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.21 — guilhermewolf/atoca.house0 reactions
- Nov 3, 2025chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.21 — nakatanakatana/x0 reactions
- Nov 3, 2025Update Helm release cloudflare-tunnel-ingress-controller to v0.1.0 - autoclosed — usbharu/usbharu-lab0 reactions
- Nov 3, 2025chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.21 — mpearlst/kubernetes-configs0 reactions
- Nov 3, 2025chore(deps): update cr.strrl.dev/strrl/cloudflare-tunnel-ingress-controller docker tag to v0.0.21 — mergwyn/cluster-gitops0 reactions
- Nov 3, 2025chore(deps): update helm release cloudflare-tunnel-ingress-controller to v0.0.21 — vaughnw128/immanent-grove0 reactions · 2 comments
- Jul 27, 2025Add cloudflare-tunnel manifest — abdullahainun/selfh-k8s0 reactions
- Feb 16, 2025Update Helm release cloudflare-tunnel-ingress-controller to v0.0.18 — vicsufer/homelab0 reactions
- Feb 11, 2025Update Helm release cloudflare-tunnel-ingress-controller to v0.0.18 — nakatanakatana/x0 reactions
The file
Files
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is a Kubernetes Ingress Controller that integrates with Cloudflare Tunnel to expose Kubernetes services to the internet securely without requiring port forwarding or firewall configuration. It watches Kubernetes Ingress resources and automatically configures Cloudflare Tunnels to route traffic to the corresponding services.
For the data flow, DNS ownership model, and connector reconciliation design, see the architecture explanation.
Architecture Orientation
- IngressController (
pkg/controller/ingress-controller.go): Reconciles controlled Kubernetes Ingress resources - Ingress transformation (
pkg/controller/transform.go): Converts Ingress rules and Services into Exposure objects - Exposure (
pkg/exposure/exposure.go): Internal representation shared between Kubernetes and Cloudflare logic - TunnelClient (
pkg/cloudflare-controller/tunnel-client.go): Reconciles tunnel ingress rules and DNS records through the Cloudflare API - DNS ownership (
pkg/cloudflare-controller/dns.go): Plans CNAME and ownership TXT record changes - ControlledCloudflaredConnector (
pkg/controller/controlled-cloudflared-connector.go): Reconciles the managed cloudflared Secret and Deployment, owned by the controller Deployment so garbage collection removes them on uninstall; the Cloudflare tunnel itself is intentionally kept and reused by name
Development Commands
# Initial setup (installs pre-commit hooks via prek)
make setup
# Run unit tests
make unit-test
# Run a single test
go test -run TestFunctionName ./pkg/path/to/package/...
# Run integration tests (requires setup-envtest)
make integration-test
# Build Docker image
make image
# Development with live reload (also runs setup)
make devPre-commit Hooks
Pre-commit hooks are managed via prek (configured in prek.toml). Hooks run gofmt, go vet, and golangci-lint automatically before each commit. Run make setup after cloning to install them.
Configuration
Required Flags
--cloudflare-api-token: Cloudflare API token with Zone:Zone:Read, Zone:DNS:Edit and Account:Cloudflare Tunnel:Edit permissions--cloudflare-account-id: Cloudflare account ID--cloudflare-tunnel-name: Name of the Cloudflare tunnel to manage--ingress-class: Ingress class name (default: "cloudflare-tunnel")--controller-class: Controller class name (default: "strrl.dev/cloudflare-tunnel-ingress-controller")--namespace: Namespace to execute cloudflared connector (default: "default")
Supported Annotations
cloudflare-tunnel-ingress-controller.strrl.dev/proxy-ssl-verify: Enable/disable SSL verification ("on" or "off", default: "off")cloudflare-tunnel-ingress-controller.strrl.dev/backend-protocol: Backend protocol (default: "http")cloudflare-tunnel-ingress-controller.strrl.dev/http-host-header: Set HTTP Host header for the local webservercloudflare-tunnel-ingress-controller.strrl.dev/origin-server-name: Hostname on the origin server certificatecloudflare-tunnel-ingress-controller.strrl.dev/disable-dns-management: Disable Cloudflare DNS record (CNAME/TXT) management for the ingress while still configuring the tunnel ingress rule, so DNS can be delegated to an external system such as external-dns or a Cloudflare Load Balancer ("true" or "false", default "false")- Origin request settings mapping to cloudflared
originRequestfields (seepkg/controller/well_known_annotations.go):connect-timeout,tls-timeout,tcp-keepalive,no-happy-eyeballs,keepalive-connections,keepalive-timeout,no-tls-verify,disable-chunked-encoding,http2-origin
Testing Strategy
Unit Tests
Located in pkg/ directories alongside source files (e.g., dns_test.go, transform_test.go).
Integration Tests
Located in test/integration/ using Ginkgo/Gomega framework with envtest for Kubernetes API simulation. The hack/install-setup-envtest.sh script installs setup-envtest if not present.
Deployment
Helm chart in helm/cloudflare-tunnel-ingress-controller/. Example dev configurations in hack/dev/.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

