feat(cluster-apps): manage tunnel-fronted CNAMEs in TF#4
Merged
Conversation
…tatus/ansible The cloudflare-operator creates the cluster-apps tunnel but does not manage DNS records — it only configures the cloudflared deployment to route hostnames it sees in TunnelBindings. Without CNAMEs pointing each FQDN at <tunnel-id>.cfargotunnel.com, requests reach Cloudflare's edge but error out with 530/1033. Look up the operator-owned tunnel by name and write a CNAME for each fronted hostname. Tunnel ID gets refreshed automatically if the operator ever recreates the tunnel.
OpenTofu Plan |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The cloudflare-operator owns the
cluster-appstunnel and configures the cloudflared deployment to route hostnames it sees inTunnelBindings — but it does not write DNS records. Without a CNAME pointing each FQDN at<tunnel-id>.cfargotunnel.com, requests reach Cloudflare's edge but error out with 530 / 1033 (no tunnel route for hostname).This PR:
data "cloudflare_zero_trust_tunnel_cloudflared" "cluster_apps"lookup by name (cluster-apps-k3s) so the tunnel ID resolves at plan time without being hard-coded in TFfor_eachcloudflare_dns_recordcoveringargocd,grafana,status,ansible— the hostnames declared in TunnelBindings underkustomize-cluster/workloads/If the operator ever recreates the tunnel, the next
tofu planpicks up the new ID via the data source and updates the CNAME content.Test plan
Pairs with
cluster-apps-k3s).🤖 Generated with Claude Code