docs/advanced/configuration-precedence.md
ExternalDNS configuration can come from these sources: resource annotations, CLI flags, environment variables, and defaults. The effective value is determined by the following precedence order:
flowchart TD
A[1. Resource Annotations] -->|Override| Result
B[2. CLI Flags] -->|Used if no annotation| Result
C[3. Environment Variables] -->|May override defaults
and in some cases flags/annotations| Result
D[4. Defaults] -->|Fallback| Result
subgraph Flags
B1[Filter Flags: --flag-with-filter] -->|Define scope
Annotations outside scope ignored| B
B2[Non-filter Flags] -->|Apply if no annotation| B
end
Result[Effective ExternalDNS Configuration]
A --> Result
B --> Result
D --> Result
Annotations
kind: DNSEndpoint--service-type-filter, --source) define the scope of resources considered.CLI Flags
--source, --service-type-filter, --*-filter) limit which resources are processed.
Environment Variables
kubectl or cloudflare.Defaults