Global DNS Details
ExternalDNS and Global Hostname
The ingress includes the global hostname in spec.rules and spec.tls so the
ALB accepts requests for the global FQDN. By default, ExternalDNS would
extract this hostname and try to create an A record for it, conflicting with
the CNAME failover records created by module.global-dns
(Route53 forbids a CNAME alongside any other record type per RFC 1034). This
is prevented by the
external-dns.alpha.kubernetes.io/ingress-hostname-source:
annotation-only annotation on the ingress, which tells ExternalDNS to only
create DNS records for hostnames listed in the
external-dns.alpha.kubernetes.io/hostname annotation (the
cluster-specific hostname), ignoring spec.rules[].host
entries. If you see ExternalDNS errors about
InvalidChangeBatch / CNAME conflicts, verify this
annotation is present on the ingress.
DNS Configuration Table
| DR Mode | Global FQDN | How It Works |
|---|---|---|
dr="" (non-DR)
| N/A | No global DNS, direct cluster access |
dr="active"
|
${global_logscale_hostname}.${zone_name}
| PRIMARY failover record points to primary ALB |
dr="standby"
|
${global_logscale_hostname}.${zone_name}
| SECONDARY failover record points to secondary ALB |