feat(cloudflared): publish the kube-apiserver at k8s.riotpiao.com #88
Open
rock
wants to merge 1 commits from
feat/k8s-api-public-tunnel into main
pull from: feat/k8s-api-public-tunnel
merge into: :main
:main
:fix/forgejo-gitea-cpu-limits
:fix/llm-serving-poimen-netpol
:chore/park-clef-for-candle
:feat/k8s-api-public-tunnel
:feat/key-rotation-crd
:feat/comfyui-sso
:chore/authentik-retirement
:fix/grafana-oidc-secret
:feat/grafana-gotify-contact
:feat/grafana-gotify-bridge
:feat/igotify-token
:revert/gotify-sso
:feat/gotify-sso
:fix/authentik-tunnel-route
:feat/zitadel-oidc-consumer-wiring
:integration/merge-56-58-69
:harness/zitadel-iam-wiring
:fix/prometheus-retention-size
:fix/allow-zitadel-chart-repo
:fix/sops-generator-indent
:fix/sops-drop-orphan-forgejo-pat
:chore/remove-azhi-riotpiao-app
:fix/certmanager-dns01
:fix/retire-longhorn-disk4
:feat/azhi-cnpg-test
:feat/azhi-riotpiao-argocd
:fix/etcd-defrag-main
:feat/local-path-backend
:fix/minio-frozen-image-pin
:fix/minio-mc-image
:fix/secrets-placeholders
:fix/minio-image
:harness/51-vllm-prefill-scheduling
:paperless-ai-sops-fix
:fix/aggressive-cleanup-and-paperless-ai
:feat/tekton-pipelines-ci
:fix/longhorn-storage-isolation
:fix/cnpg-3-replicas
:fix/org-transfer-urls
:fix/argocd-repo-url
:feat/gotify-notifications
:feat/p3.9-e2e-auth-test
1
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
1714b99b71 |
feat(cloudflared): publish the kube-apiserver at k8s.riotpiao.com
Adds a tunnel ingress rule so kubectl works from outside the LAN now that the apiserver authenticates against ZITADEL. Two deliberate details: 1. The origin is the in-cluster Service (kubernetes.default.svc.cluster.local:443), not a node IP. That survives a control-plane address change and lets each connector reach a local-healthy apiserver. 2. originRequest.noTLSVerify is required. The apiserver presents a certificate for the cluster CA plus its node addresses, so its SANs cannot match this public hostname. Cloudflare terminates the public TLS with the *.riotpiao.com edge certificate and the connector hop is already inside the cluster, so skipping verification on that short hop is the least-bad option. This is scoped to this one rule; do not copy it elsewhere. The hostname is served on 443. Cloudflare Tunnel hostname rules do not proxy arbitrary ports, so kubeconfig must use https://k8s.riotpiao.com with no :6443. SECURITY: this exposes the Kubernetes API to the internet. Authentication is still ZITADEL OIDC plus client certificates, but a Cloudflare Access application belongs in front of the hostname. That is a separate change and is not included here. |