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-spec flag was specified
or the Ingress had an
external-dns.alpha.kubernetes.io/ingress-hostname-source: annotation-only annotation.
- Iterates over the Ingress's
spec.tls, adding each member ofhosts.
This behavior is suppressed if the --ignore-ingress-tls-spec flag was specified
or the Ingress had an
external-dns.alpha.kubernetes.io/ingress-hostname-source: annotation-only annotation,
- Adds the hostnames from any
external-dns.alpha.kubernetes.io/hostnameannotation.
This behavior is suppressed if the --ignore-hostname-annotation flag was specified
or the Ingress had an
external-dns.alpha.kubernetes.io/ingress-hostname-source: defined-hosts-only annotation.
- If no DNS entries 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.