---
tags:
  - sources
  - autogenerated
---

# 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 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<br/>IngressRouteTCP.traefik.io<br/>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:

```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
