cloudflared-mirror/cmd/cloudflared
Mahendra Singh Rathore af04ee52f1 feat: add native Kubernetes service discovery and auto-ingress (#1607)
Implements native Kubernetes API integration for cloudflared, enabling
automatic discovery and exposure of annotated Kubernetes services through
Cloudflare Tunnel without manual ingress configuration.

## New k8s/ package
- Lightweight REST client (no client-go dependency) supporting both
  in-cluster service account auth and kubeconfig-based auth
- Annotation-based service discovery:
  - cloudflared.cloudflare.com/tunnel: "true" (required)
  - cloudflared.cloudflare.com/hostname (override generated hostname)
  - cloudflared.cloudflare.com/port (select specific service port)
  - cloudflared.cloudflare.com/scheme (http/https)
  - cloudflared.cloudflare.com/path (path regex for ingress rule)
  - cloudflared.cloudflare.com/no-tls-verify (disable TLS verify)
  - cloudflared.cloudflare.com/origin-server-name (SNI override)
- Ingress rule generation from discovered services with merge/dedup
- Periodic watcher with configurable resync interval for runtime updates

## CLI subcommands (cloudflared tunnel kubernetes)
- discover: one-shot service discovery (table/json/yaml output)
- watch: continuous watching with live updates
- generate-config: output mergeable ingress YAML

## Config file support
  kubernetes:
    enabled: true
    baseDomain: example.com
    namespace: default
    exposeAPIServer: true
    apiServerHostname: k8s.example.com

## Integration
- Startup: discovered services merged into ingress rules at tunnel start
- Runtime: watcher updates orchestrator config on service changes
- Optional Kubernetes API server exposure through the tunnel

Closes #1607
2026-03-07 19:09:55 +00:00
..
access AUTH-7480 update fed callback url for login helper 2025-08-19 18:54:31 +00:00
cliutil TUN-10292: Add cloudflared management token command 2026-03-05 16:31:24 +00:00
flags TUN-9858: Remove proxy-dns feature from cloudflared 2026-02-06 12:43:53 +00:00
management TUN-10292: Add cloudflared management token command 2026-03-05 16:31:24 +00:00
proxydns TUN-9858: Add more information to proxy-dns removal message 2026-02-11 17:59:38 +00:00
tail TUN-10292: Add cloudflared management token command 2026-03-05 16:31:24 +00:00
tunnel feat: add native Kubernetes service discovery and auto-ingress (#1607) 2026-03-07 19:09:55 +00:00
updater chore: fix linter rules 2025-04-01 18:57:55 +01:00
app_forward_service.go TUN-4067: Reformat code for consistent import order, grouping, and fix formatting. Added goimports target to the Makefile to make this easier in the future. 2021-03-24 10:53:29 -05:00
app_service.go TUN-9858: Remove proxy-dns feature from cloudflared 2026-02-06 12:43:53 +00:00
common_service.go TUN-5679: Add support for service install using Tunnel Token 2022-03-03 18:59:03 +00:00
generic_service.go chore: fix linter rules 2025-04-01 18:57:55 +01:00
linux_service.go Fix systemd service installation hanging 2025-10-23 14:38:09 +00:00
macos_service.go Fix broken links in `cmd/cloudflared/*.go` related to running tunnel as a service 2025-04-01 17:45:59 +01:00
main.go TUN-10292: Add cloudflared management token command 2026-03-05 16:31:24 +00:00
service_template.go TUN-9016: update go to 1.24 2025-06-06 09:05:49 +00:00
windows_service.go TUN-9016: update go to 1.24 2025-06-06 09:05:49 +00:00