Basically my internal DNS zonefile is configured like this (it should be easier to read than my explanation):
coredns_config:
zoneFiles:
- filename: int.pootis.network.zone
domain: int.pootis.network
contents: |
$ORIGIN int.pootis.network.
$TTL 300
@ SOA ns.int.pootis.network. admin.pootis.network. (
2026082001
1200
300
1209600
300
)
@ NS ns.int.pootis.network.
ns AAAA {{ k8s_dns_ipv6 }}
ns A {{ k8s_dns_ipv4 }}
vault CNAME internaltraefik.internaltraefik.svc.{{ k8s_cluster_domain }}.
cinny CNAME internaltraefik.internaltraefik.svc.{{ k8s_cluster_domain }}.
grafana CNAME internaltraefik.internaltraefik.svc.{{ k8s_cluster_domain }}.
stalwart CNAME internaltraefik.internaltraefik.svc.{{ k8s_cluster_domain }}.
lemmy CNAME internaltraefik.internaltraefik.svc.{{ k8s_cluster_domain }}.
mail CNAME stalwart.stalwart.svc.{{ k8s_cluster_domain }}.
webmail CNAME internaltraefik.internaltraefik.svc.{{ k8s_cluster_domain }}.
; ACME challenges
; int.pootis.network + *.int.pootis.network
_acme-challenge CNAME 1ca12d2c-8034-4a09-a940-dc59bd4f38d8.acme-dns.pootis.network.
; mail.int.pootis.network
_acme-challenge.mail CNAME d175b66d-909f-46ba-8572-636ebc235d4c.acme-dns.pootis.network.
chaospatterns@lemmy.world 2 weeks ago
Since you’re using Kubernetes, have you looked at external-dns? In my home lab, I use external-dns to take Ingress and Service resources and register them into my internal DNS zone. I use the etcd backend. external-dns registers zones in etcd, then CoreDNS queries from etcd. As soon as I create a new Ingress, it’s automatically registered and pointing to my Traefik service.
github.com/kubernetes-sigs/…/coredns-etcd.md