Warning This document has not been updated for a while now. It may be out of date.Last updated: 27 Aug 2021
govuk-infrastructure: 9. Use external-dns for DNS record management
We want to be able to manage DNS records for Kubernetes
Service type=Loadbalancer resources declaratively via Kubernetes resources, so that we avoid the overhead and brittleness of manual DNS management with Terraform.
external-dns is the primary project in this space and gives us everything we need; Route53 integration, support for all AWS load balancer types, integration with
alb-ingress-controller and IRSA support.
Can be installed via a Helm chart.
Service resources can configure a DNS record with a simple annotation:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: external-dns.alpha.kubernetes.io/hostname: foo.test.govuk.digital