mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2026-05-05 14:46:10 +02:00
* perf(source/istio): replace API calls with indexed informer cache for gateway and virtualservice sources Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com> * perf(source/istio): replace API calls with indexed informer cache for gateway and virtualservice sources Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com> --------- Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
76 lines
7.3 KiB
Markdown
76 lines
7.3 KiB
Markdown
---
|
|
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
|