gardener / external-dns-management

Environment to manage external DNS entries for a kubernetes cluster
Apache License 2.0
81 stars 67 forks source link

[aws-route53] Create AAAA records with alias target for specific annotations #350

Closed MartinWeindel closed 8 months ago

MartinWeindel commented 8 months ago

What this PR does / why we need it: With #341, the creation of AAAA DNS records with alias target was introduced for aws-route53 for AWS load balancer targets. If an AAAA record was needed was concluded by an DNS lookup of the target load balancer domain name. As it turned out, using DNS lookup it is not reliable in all circumstances. Therefore the implementation was changed to rely on annotations on the source resources (services, ingresses, dnsentries) only. Two annotations are supported for dual-stack:

Ipv6 only is supported with the annotation dns.gardener.cloud/ip-stack=ipv6

The PR also fixes the problem with sporadic orphan AAAA records, if DNS lookup on creation and deletion returned different results.

Which issue(s) this PR fixes: Fixes #349

Special notes for your reviewer: Replaces implementation based on DNS lookup: #341

Release note:

[aws-route53] Support dual-stack AWS load balancers by creating additional AAAA record with alias target if annotation `service.beta.kubernetes.io/aws-load-balancer-ip-address-type=dualstack` (services only) or `dns.gardener.cloud/ip-stack=dual-stack` (ingresses,dnsentries, and services) is set.