docs/sources/index.md
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.
Sources are responsible for:
| 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 |
To use a specific source, configure ExternalDNS with the --source flag:
external-dns --source=service --source=ingress
Multiple sources can be combined to watch different resource types simultaneously.