1.8 KiB
Ingress source
The ingress source creates DNS entries based on Ingress.networking.k8s.io resources.
Filtering the Ingresses considered
The --ingress-class flag filters Ingress resources by a set of ingress classes.
The flag may be specified multiple times in order to
allow multiple ingress classes.
This source supports the --label-filter flag, which filters Ingress resources
by a set of labels.
Domain names
The domain names of the DNS entries created from an Ingress are sourced from the following places:
-
Iterates over the Ingress's
spec.rules, adding any non-emptyhost.This behavior is suppressed if the
--ignore-ingress-rules-specflag was specified or the Ingress had anexternal-dns.alpha.kubernetes.io/ingress-hostname-source: annotation-onlyannotation. -
Iterates over the Ingress's
spec.tls, adding each member ofhosts.This behavior is suppressed if the
--ignore-ingress-tls-specflag was specified or the Ingress had anexternal-dns.alpha.kubernetes.io/ingress-hostname-source: annotation-onlyannotation, -
Adds the hostnames from any
external-dns.alpha.kubernetes.io/hostnameannotation.This behavior is suppressed if the
--ignore-hostname-annotationflag was specified or the Ingress had anexternal-dns.alpha.kubernetes.io/ingress-hostname-source: defined-hosts-onlyannotation. -
If no endpoints were produced for an Ingress by the previous steps or the
--combine-fqdn-annotationflag was specified, then adds hostnames generated from any--fqdn-templateflag.
Targets
The targets of the DNS entries created from an Ingress are sourced from the following places:
-
If the Ingress has an
external-dns.alpha.kubernetes.io/targetannotation, uses the values from that. -
Otherwise, iterates over the Ingress's
status.loadBalancer.ingress, adding each non-emptyipandhostname.