ExternalDNS¶
External DNS is a Kubernetes add-on that can automate the management of DNS records based on Ingress and Service resources.
For complete project documentation, please visit the External DNS Github repository.
Usage¶
External DNS can be deployed by enabling the add-on via the following.
enable_external_dns = true
External DNS can optionally leverage the eks_cluster_domain
global property of the kubernetes_addon
submodule. The value for this property should be a Route53 domain managed by your account. ExternalDNS will leverage the value supplied for its zoneIdFilters
property, which will restrict ExternalDNS to only create records for this domain. See docs here.
eks_cluster_domain = <cluster_domain>
Alternatively, you can supply a list of Route53 zone ARNs which external-dns will have access to create/manage records:
external_dns_route53_zone_arns = [
"arn:aws:route53::123456789012:hostedzone/Z1234567890"
]
You can optionally customize the Helm chart that deploys external-dns
via the following configuration.
enable_external_dns = true
external_dns_helm_config = {
name = "external-dns"
chart = "external-dns"
repository = "https://charts.bitnami.com/bitnami"
version = "6.1.6"
namespace = "external-dns"
}
GitOps Configuration¶
The following properties are made available for use when managing the add-on via GitOps.
external_dns = {
enable = true
zoneFilterIds = local.zone_filter_ids
serviceAccountName = local.service_account
}