Skip to content

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:

external-dns --source=service --source=ingress

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