{"adoption": {"forks": 2919, "observed_at": "2026-08-28T04:10:28.229638+00:00", "stars": 9071}, "canonical_url": "https://ross.abutalabs.com/products/external-dns", "card": {"archived": false, "artifact_type": "service", "description": "Configure external DNS servers dynamically from Kubernetes resources", "domain": ["networking", "cloud-computing", "infrastructure-as-code"], "enriched": true, "function": ["networking", "deployment", "configuration-management"], "health_score": 100, "homepage": "https://kubernetes-sigs.github.io/external-dns/", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["kubernetes-sigs/external-dns"], "name": "kubernetes-sigs/external-dns", "platform": ["go", "cloud", "self-hosted"], "pushed_at": "2026-08-24T20:13:04+00:00", "repo": "kubernetes-sigs/external-dns", "stars": 9071, "tags": ["external-dns", "route53", "cloud-dns", "ingress", "dns-providers", "k8s-sig-network", "controller", "kubernetes", "devops", "docker"], "topics": ["dns", "kubernetes", "route53", "aws", "clouddns", "gcp", "ingress", "k8s-sig-network", "dns-record", "dns-providers", "external-dns", "dns-controller", "dns-servers"], "urls": [], "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"], "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.", "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"], "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"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/external-dns", "repo": "kubernetes-sigs/external-dns", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:24:01.479209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a1311d47b448e50312c033c36305c4759cc3cfa3760d553ad8abadc6f1df1f6", "fetched_at": "2026-08-28T04:10:28.229638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kubernetes-sigs/external-dns"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T08:23:51.315582+00:00", "kind": "homepage", "missing": false, "url": "https://kubernetes-sigs.github.io/external-dns/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:24:01.479209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a1311d47b448e50312c033c36305c4759cc3cfa3760d553ad8abadc6f1df1f6", "fetched_at": "2026-08-28T04:10:28.229638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kubernetes-sigs/external-dns"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T08:23:51.315582+00:00", "kind": "homepage", "missing": false, "url": "https://kubernetes-sigs.github.io/external-dns/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:24:01.479209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a1311d47b448e50312c033c36305c4759cc3cfa3760d553ad8abadc6f1df1f6", "fetched_at": "2026-08-28T04:10:28.229638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kubernetes-sigs/external-dns"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T08:23:51.315582+00:00", "kind": "homepage", "missing": false, "url": "https://kubernetes-sigs.github.io/external-dns/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:24:01.479209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a1311d47b448e50312c033c36305c4759cc3cfa3760d553ad8abadc6f1df1f6", "fetched_at": "2026-08-28T04:10:28.229638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kubernetes-sigs/external-dns"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T08:23:51.315582+00:00", "kind": "homepage", "missing": false, "url": "https://kubernetes-sigs.github.io/external-dns/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:24:01.479209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a1311d47b448e50312c033c36305c4759cc3cfa3760d553ad8abadc6f1df1f6", "fetched_at": "2026-08-28T04:10:28.229638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kubernetes-sigs/external-dns"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T08:23:51.315582+00:00", "kind": "homepage", "missing": false, "url": "https://kubernetes-sigs.github.io/external-dns/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:24:01.479209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a1311d47b448e50312c033c36305c4759cc3cfa3760d553ad8abadc6f1df1f6", "fetched_at": "2026-08-28T04:10:28.229638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kubernetes-sigs/external-dns"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T08:23:51.315582+00:00", "kind": "homepage", "missing": false, "url": "https://kubernetes-sigs.github.io/external-dns/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.229638+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:24:01.479209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a1311d47b448e50312c033c36305c4759cc3cfa3760d553ad8abadc6f1df1f6", "fetched_at": "2026-08-28T04:10:28.229638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kubernetes-sigs/external-dns"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T08:23:51.315582+00:00", "kind": "homepage", "missing": false, "url": "https://kubernetes-sigs.github.io/external-dns/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:24:01.479209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a1311d47b448e50312c033c36305c4759cc3cfa3760d553ad8abadc6f1df1f6", "fetched_at": "2026-08-28T04:10:28.229638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kubernetes-sigs/external-dns"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T08:23:51.315582+00:00", "kind": "homepage", "missing": false, "url": "https://kubernetes-sigs.github.io/external-dns/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:24:01.479209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a1311d47b448e50312c033c36305c4759cc3cfa3760d553ad8abadc6f1df1f6", "fetched_at": "2026-08-28T04:10:28.229638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kubernetes-sigs/external-dns"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T08:23:51.315582+00:00", "kind": "homepage", "missing": false, "url": "https://kubernetes-sigs.github.io/external-dns/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:24:01.479209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a1311d47b448e50312c033c36305c4759cc3cfa3760d553ad8abadc6f1df1f6", "fetched_at": "2026-08-28T04:10:28.229638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kubernetes-sigs/external-dns"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T08:23:51.315582+00:00", "kind": "homepage", "missing": false, "url": "https://kubernetes-sigs.github.io/external-dns/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 98}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3492, "days_push": 9, "days_rel": 13, "gap_med": 25, "n_releases_24m": 20}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}