Sobre o projeto

ExternalDNS é um controlador Kubernetes de código aberto que sincroniza Services e Ingresses Kubernetes expostos com provedores de DNS externos. Inspirado no DNS interno do Kubernetes (KubeDNS), ele obtém recursos da API Kubernetes para determinar os registros DNS desejados, mas, ao contrário do KubeDNS, não atua como um servidor DNS em si—em vez disso, configura provedores de DNS externos, como AWS Route 53, Google Cloud DNS, Cloudflare, Azure DNS, e muitos outros. Principais recursos incluem: - Gerenciamento de DNS agnóstico de provedor: Suporta diversos provedores integrados (AWS Route 53, Google Cloud DNS, Cloudflare, Azure DNS, Alibaba Cloud DNS, Oracle Cloud, OVHcloud, Scaleway, PowerDNS, CoreDNS, e outros) e um sistema de webhook para adicionar novos provedores sem modificar o código central. - Múltiplas fontes de recursos: Lê de Kubernetes Services, Ingresses, Gateway API Routes, Istio Gateways, Contour HTTPProxy, F5 VirtualServer, Ambassador Host, DNSEndpoint CRDs, e mais. - Gerenciamento seguro: Usa registros TXT com um ID de proprietário configurável para rastrear quais registros gerencia, permitindo operação segura em zonas hospedadas não vazias. Suporta modo dry-run para pré-visualizar alterações. - Configuração flexível: Suporta filtragem por domínio, personalização de TTL, nomes de host internos, IPs externos, e várias políticas (sync, upsert-only). - Flexibilidade de implantação: Pode rodar como controlador no cluster ou localmente para testes. O projeto faz parte do ecossistema Kubernetes SIGs e é mantido pela comunidade. Novos provedores são adicionados via sistema de webhook, em vez de integrados diretamente, reduzindo a carga de manutenção no projeto central.