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
}