Skip to main content

External DNS

Versions Supported

AWS Route53

To use ExternalDNS with AWS Route53, you need to create an IAM policy and role with the following permissions.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["route53:ChangeResourceRecordSets"],
"Resource": ["arn:aws:route53:::hostedzone/*"]
},
{
"Effect": "Allow",
"Action": ["route53:ListHostedZones", "route53:ListResourceRecordSets"],
"Resource": ["*"]
}
]
}

You also need to meet the following prerequisites:

  • Create an IAM role and associate the policy created above. Make a note of the role ARN which will be used in ExternalDNS deployment later

  • Setup hosted zone in AWS Route53. Use the following command to create a hosted zone in Route53 using the AWS CLI.

    aws route53 create-hosted-zone --name "external-dns-test.my-org.com." --caller-reference "external-dns-test-$(date +%s)"

Troubleshooting

  • Make sure an Ingress resource gets created for the applications deployed and a LoadBalancer hostname or IP address is set on the Ingress resource

  • Check the external-dns pod for any issues with ExternalDNS not inserting records. If required, change logLevel to debug to see additional info on the logs

Terraform

You can reference the External DNS pack in Terraform with the following data resource.

data "spectrocloud_registry" "palette_registry" {
name = "Palette Registry"
}

data "spectrocloud_pack" "external-dns" {
name = "external-dns"
version = "0.13.6
registry_uid = data.spectrocloud_registry.palette_registry.id
}