External DNS
Versions Supported
- 0.12.x
- 0.7.x
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)"
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, changelogLevel
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
}