Skip to content

feat: initial commit #1

Merged
zachsmith1 merged 9 commits intomainfrom
claude-poc
Mar 4, 2026
Merged

feat: initial commit #1
zachsmith1 merged 9 commits intomainfrom
claude-poc

Conversation

@zachsmith1
Copy link
Contributor

ExternalDNS webhook provider that manages DNS records through Datum Cloud's DNS custom resources (DNSZone and DNSRecordSet). The webhook runs as a sidecar container alongside ExternalDNS and translates its endpoint change requests into Kubernetes CRDs managed by the dns-operator.

The webhook implements the ExternalDNS webhook provider protocol (/, /records, /adjustendpoints) and:

  • Discovers zones by watching DNSZone resources across the cluster with periodic refresh
  • Routes records to the correct zone using longest-suffix domain matching
  • Tracks ownership via external-dns.io/owner labels to prevent conflicts between instances
  • Filters domains so ExternalDNS only attempts to manage hostnames that match a known zone

Multi-cluster zone sources

For simple deployments, CLI flags configure a single in-cluster zone source:

--owner-id=my-instance --namespace=production

For multi-cluster setups, a YAML config file defines additional zone sources via --config:

zoneSources:
  - name: production
    kubeconfig: /etc/prod.kubeconfig
  - name: staging
    kubeconfig: /etc/staging.kubeconfig
    namespace: dns-zones

@zachsmith1 zachsmith1 requested a review from scotwells March 3, 2026 01:06
@zachsmith1 zachsmith1 merged commit fe6701e into main Mar 4, 2026
10 checks passed
@zachsmith1 zachsmith1 deleted the claude-poc branch March 4, 2026 02:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants