Ivan Ka c35ed0b82a
feat(source): add unstructured source (#6172)
* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>

* feat(source): add unstructured source

Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* Update docs/sources/unstructured.md

Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* feat(source): add unstructured source

* feat(source): add unstructured source

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
2026-03-12 05:23:33 +05:30

4.4 KiB

tags
tags
sources
autogenerated

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 Resources Filters Namespace FQDN Template Events Category
ambassador-host Host.getambassador.io annotation,label all,single false false ingress controllers
connector Remote TCP Server false false special
contour-httpproxy HTTPProxy.projectcontour.io annotation all,single true false ingress controllers
crd DNSEndpoint.externaldns.k8s.io annotation,label all,single false false externaldns
empty None false false testing
f5-transportserver TransportServer.cis.f5.com annotation all,single false false load balancers
f5-virtualserver VirtualServer.cis.f5.com annotation all,single false false load balancers
fake Fake Endpoints true true testing
gateway-grpcroute GRPCRoute.gateway.networking.k8s.io annotation,label all,single false false gateway api
gateway-httproute HTTPRoute.gateway.networking.k8s.io annotation,label all,single false false gateway api
gateway-tcproute TCPRoute.gateway.networking.k8s.io annotation,label all,single false false gateway api
gateway-tlsroute TLSRoute.gateway.networking.k8s.io annotation,label all,single false false gateway api
gateway-udproute UDPRoute.gateway.networking.k8s.io annotation,label all,single true false gateway api
gloo-proxy Proxy.gloo.solo.io all,single false false service mesh
ingress Ingress annotation,label all,single true false kubernetes core
istio-gateway Gateway.networking.istio.io annotation all,single true false service mesh
istio-virtualservice VirtualService.networking.istio.io annotation all,single true false service mesh
kong-tcpingress TCPIngress.configuration.konghq.com annotation all,single false false ingress controllers
node Node annotation,label all true false kubernetes core
openshift-route Route.route.openshift.io annotation,label all,single true false openshift
pod Pod annotation,label all,single true false kubernetes core
service Service annotation,label all,single true false kubernetes core
skipper-routegroup RouteGroup.zalando.org annotation all,single true false ingress controllers
traefik-proxy IngressRoute.traefik.io
IngressRouteTCP.traefik.io
IngressRouteUDP.traefik.io
annotation all,single false false ingress controllers
unstructured Unstructured annotation,label all,single true false custom resources

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