mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-06 09:36:58 +02:00
* ci(docs): add markdown linters * fixes issues in md detected by the linter * fix workflow * pre commit * add editor config * fix test * review
49 lines
1.8 KiB
Markdown
49 lines
1.8 KiB
Markdown
# 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:
|
|
|
|
1. Iterates over the Ingress's `spec.rules`, adding any non-empty `host`.
|
|
|
|
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.
|
|
|
|
2. Iterates over the Ingress's `spec.tls`, adding each member of `hosts`.
|
|
|
|
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,
|
|
|
|
3. Adds the hostnames from any `external-dns.alpha.kubernetes.io/hostname` annotation.
|
|
|
|
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.
|
|
|
|
4. If no DNS entries were produced for an Ingress by the previous steps
|
|
or the `--combine-fqdn-annotation` flag was specified, then adds hostnames
|
|
generated from any`--fqdn-template` flag.
|
|
|
|
## Targets
|
|
|
|
The targets of the DNS entries created from an Ingress are sourced from the following places:
|
|
|
|
1. If the Ingress has an `external-dns.alpha.kubernetes.io/target` annotation, uses
|
|
the values from that.
|
|
|
|
2. Otherwise, iterates over the Ingress's `status.loadBalancer.ingress`,
|
|
adding each non-empty `ip` and `hostname`.
|