Supported Sources¶
ExternalDNS supports multiple sources for discovering DNS records. Each source watches specific Kubernetes or cloud platform resources and generates DNS records based on their configuration.
Overview¶
Sources are responsible for:
- Watching Kubernetes resources or external APIs
- Extracting DNS information from annotations and resource specifications
- Generating DNS endpoint records for providers to consume
Available Sources¶
| Source Name | Filters | Namespace | FQDN Template | Events | Provider Specific | Category | Resources |
|---|---|---|---|---|---|---|---|
| ambassador-host | annotation,label | all,single | false | false | true | ingress controllers | Host.getambassador.io |
| connector | false | false | false | special | Remote TCP Server | ||
| contour-httpproxy | annotation | all,single | true | false | true | ingress controllers | HTTPProxy.projectcontour.io |
| crd | annotation,label | all,single | false | true | true | externaldns | DNSEndpoint.externaldns.k8s.io |
| empty | false | false | false | testing | None | ||
| f5-transportserver | annotation | all,single | false | false | false | load balancers | TransportServer.cis.f5.com |
| f5-virtualserver | annotation | all,single | false | false | false | load balancers | VirtualServer.cis.f5.com |
| fake | true | true | false | testing | Fake Endpoints | ||
| gateway-grpcroute | annotation,label | all,single | true | false | true | gateway api | GRPCRoute.gateway.networking.k8s.io |
| gateway-httproute | annotation,label | all,single | true | false | true | gateway api | HTTPRoute.gateway.networking.k8s.io |
| gateway-tcproute | annotation,label | all,single | true | false | true | gateway api | TCPRoute.gateway.networking.k8s.io |
| gateway-tlsroute | annotation,label | all,single | true | false | true | gateway api | TLSRoute.gateway.networking.k8s.io |
| gateway-udproute | annotation,label | all,single | true | false | true | gateway api | UDPRoute.gateway.networking.k8s.io |
| gloo-proxy | all,single | false | false | true | service mesh | Proxy.gloo.solo.io | |
| ingress | annotation,label | all,single | true | true | true | kubernetes core | Ingress |
| istio-gateway | annotation,label | all,single | true | false | true | service mesh | Gateway.networking.istio.io |
| istio-virtualservice | annotation,label | all,single | true | false | true | service mesh | VirtualService.networking.istio.io |
| kong-tcpingress | annotation | all,single | false | false | true | ingress controllers | TCPIngress.configuration.konghq.com |
| node | annotation,label | all | true | true | false | kubernetes core | Node |
| openshift-route | annotation,label | all,single | true | false | true | openshift | Route.route.openshift.io |
| pod | annotation,label | all,single | true | true | false | kubernetes core | Pod |
| service | annotation,label | all,single | true | true | true | kubernetes core | Service |
| skipper-routegroup | annotation | all,single | true | false | true | ingress controllers | RouteGroup.zalando.org |
| traefik-proxy | annotation | all,single | false | false | true | ingress controllers | IngressRoute.traefik.io IngressRouteTCP.traefik.io IngressRouteUDP.traefik.io |
| unstructured | annotation,label | all,single | true | false | false | custom resources | Unstructured |
Usage¶
To use a specific source, configure ExternalDNS with the --source flag:
Multiple sources can be combined to watch different resource types simultaneously.
Source Categories¶
- Kubernetes Core: Native Kubernetes resources (Service, Ingress, Pod, Node)
- ExternalDNS: Native ExternalDNS resources
- Gateway API: Kubernetes Gateway API resources (Gateway, HTTPRoute, etc.)
- Service Mesh: Service mesh implementations (Istio, Gloo)
- Ingress Controllers: Third-party ingress controller resources (Contour, Traefik, Ambassador, etc.)
- Load Balancers: Load balancer specific resources (F5)
- OpenShift: OpenShift specific resources (Route)
- Cloud Platforms: Cloud platform integrations (Cloud Foundry)
- Wrappers: Source wrappers that modify or combine other sources
- Special: Special purpose sources (connector, empty)
- Testing: Sources used for testing purposes