15. External DNS Install using Terraform¶
Step-01: Introduction¶
In this step, we’re bringing in ExternalDNS, the service that automatically updates Route53 whenever your Kubernetes Services or Ingresses need DNS records. No manual work, no copy-pasting hostnames, no stress.
We’ll install ExternalDNS as an EKS Add-On using Terraform, wire it up with Pod Identity, and make sure it has the exact Route53 permissions it needs. Once this is in place, your cluster will straight-up manage DNS on its own like a pro.
Architecture - AWS EKS cluster with External DNS¶

AWS EKS Cluster with External DNS¶



Step-02: Copy VPC and EKS TF Projects from Section-13 and Add External DNS TF Code in EKS Terraform Project¶
Step-03: Review External DNS Terraform Files¶
Folder Location: 02_EKS_terraform-manifests_with_addons 1. c17-01-externaldns-iam-policy-and-role.tf 2. c17-02-externaldns-pod-identity-association.tf 3. c17-03-externaldns-eksaddon.tf
Step-04: Execute Terraform Commands to Install ExternalDNS¶
# VERY VERY IMPORTANT NOTE
# Update the backend bucket with your S3 bucket
vpc/c1-versions.tf
eks/c1_versions.tf
eks/c3_remote-state.tf
# Terraform Initialize
terraform init
# Terraform Validate
terraform validate
# Terraform Plan
terraform plan
# Terraform Apply
terraform apply -auto-approve
Step-05: Verify ExternalDNS Install¶
# List AWS EKS Addon Command
aws eks list-addons --cluster-name retail-dev-eksdemo1
# List Deployments
kubectl -n external-dns get deploy
# List Pods
kubectl -n external-dns get pods
# Verify External DNS Pod logs
kubectl -n external-dns logs -f -l app.kubernetes.io/name=external-dns
🎉 New Course
Ultimate DevOps Real-World Project Implementation on AWS
$15.99
$84.99
81% OFF
DEVOPS2026FEB
Enroll Now on Udemy →
🎉 Offer