# kubernetes-sigs/external-dns

Configure external DNS servers dynamically from Kubernetes resources

Repository: https://github.com/kubernetes-sigs/external-dns
Canonical: https://ross.abutalabs.com/products/external-dns
Homepage: https://kubernetes-sigs.github.io/external-dns/
Language: Go
License: Apache-2.0
License Family: permissive
Topics: dns, kubernetes, route53, aws, clouddns, gcp, ingress, k8s-sig-network, dns-record, dns-providers, external-dns, dns-controller, dns-servers
Last push: 2026-08-24T20:13:04+00:00

## Health v2 (maintenance only)
Score: 99/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 98, longevity 100
- inputs: {"age_days": 3492, "days_push": 9, "days_rel": 13, "gap_med": 25, "n_releases_24m": 20}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 9071, forks 2919 (observed 2026-08-28T04:10:28.229638+00:00)

## What it is
ExternalDNS is a Kubernetes controller that synchronizes exposed Kubernetes Services and Ingresses with external DNS providers such as AWS Route 53 and Google Cloud DNS. It watches cluster resources via the Kubernetes API and dynamically creates, updates, and deletes DNS records in a provider-agnostic way.

## Use cases
- automatically create DNS records for Kubernetes ingresses
- sync load balancer services to Route 53
- manage external DNS records from Kubernetes resources
- expose kubernetes services via public dns
- automate dns updates for ingress hosts
- keep hosted zones in sync with cluster services
- configure cloud dns from kubernetes annotations

## When to choose
- you run Kubernetes workloads that need automatic public DNS records
- you want provider-agnostic DNS management across Route 53, Cloud DNS, and many other providers
- you want declarative, GitOps-friendly DNS driven by Kubernetes resources
- you need safe management of non-empty hosted zones with ownership tracking

## When to avoid
- you need a DNS server itself rather than a provider configurator (use CoreDNS or KubeDNS)
- you are not running Kubernetes or a compatible API
- your DNS provider is unsupported and you cannot write a webhook provider

## Facets
- artifact type: service
- maturity: stable
- function: networking, deployment, configuration-management
- domain: networking, cloud-computing, infrastructure-as-code
- platform: go, cloud, self-hosted
- tags: external-dns, route53, cloud-dns, ingress, dns-providers, k8s-sig-network, controller, kubernetes, devops, docker

## Member repositories
- kubernetes-sigs/external-dns (main) score 99

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:28.229638+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:24:01.479209+00:00, confidence not recorded.
  - readme: https://github.com/kubernetes-sigs/external-dns (fetched 2026-08-28T04:10:28.229638+00:00, sha 2a1311d47b44)
  - homepage: https://kubernetes-sigs.github.io/external-dns/ (fetched 2026-08-29T08:23:51.315582+00:00, sha 36c6c3c2e4f9)
- Data as of 2026-08-30T08:39:29.467469+00:00.
