Back to External Dns

Supported Sources

docs/sources/index.md

0.21.07.3 KB
Original Source

Supported Sources

<!-- THIS FILE MUST NOT BE EDITED BY HAND --> <!-- ON NEW SOURCE ADDED PLEASE RUN 'make generate-sources-documentation' --> <!-- markdownlint-disable MD013 -->

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 NameFiltersNamespaceFQDN TemplateEventsProvider SpecificCategoryResources
ambassador-hostannotation,labelall,singlefalsefalsetrueingress controllersHost.getambassador.io
connectorfalsefalsefalsespecialRemote TCP Server
contour-httpproxyannotationall,singletruefalsetrueingress controllersHTTPProxy.projectcontour.io
crdannotation,labelall,singlefalsetruetrueexternaldnsDNSEndpoint.externaldns.k8s.io
emptyfalsefalsefalsetestingNone
f5-transportserverannotationall,singlefalsefalsefalseload balancersTransportServer.cis.f5.com
f5-virtualserverannotationall,singlefalsefalsefalseload balancersVirtualServer.cis.f5.com
faketruetruefalsetestingFake Endpoints
gateway-grpcrouteannotation,labelall,singletruefalsetruegateway apiGRPCRoute.gateway.networking.k8s.io
gateway-httprouteannotation,labelall,singletruefalsetruegateway apiHTTPRoute.gateway.networking.k8s.io
gateway-tcprouteannotation,labelall,singletruefalsetruegateway apiTCPRoute.gateway.networking.k8s.io
gateway-tlsrouteannotation,labelall,singletruefalsetruegateway apiTLSRoute.gateway.networking.k8s.io
gateway-udprouteannotation,labelall,singletruefalsetruegateway apiUDPRoute.gateway.networking.k8s.io
gloo-proxyall,singlefalsefalsetrueservice meshProxy.gloo.solo.io
ingressannotation,labelall,singletruetruetruekubernetes coreIngress
istio-gatewayannotation,labelall,singletruefalsetrueservice meshGateway.networking.istio.io
istio-virtualserviceannotation,labelall,singletruefalsetrueservice meshVirtualService.networking.istio.io
kong-tcpingressannotationall,singlefalsefalsetrueingress controllersTCPIngress.configuration.konghq.com
nodeannotation,labelalltruetruefalsekubernetes coreNode
openshift-routeannotation,labelall,singletruefalsetrueopenshiftRoute.route.openshift.io
podannotation,labelall,singletruetruefalsekubernetes corePod
serviceannotation,labelall,singletruetruetruekubernetes coreService
skipper-routegroupannotationall,singletruefalsetrueingress controllersRouteGroup.zalando.org
traefik-proxyannotationall,singlefalsefalsetrueingress controllersIngressRoute.traefik.io
IngressRouteTCP.traefik.io
IngressRouteUDP.traefik.io
unstructuredannotation,labelall,singletruefalsefalsecustom resourcesUnstructured

Usage

To use a specific source, configure ExternalDNS with the --source flag:

bash
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