Prerequisites:
- A Kubernetes cluster with Helm 3
- A Bunny.net account with an API key that can manage DNS zones
- The ExternalDNS Helm chart repository added to Helm
kubernetes-sigs/external-dns Helm chart.
Add the ExternalDNS Helm Repository
You can skip this step if you already have the repository configured.Store the Bunny.net API Key as a Secret
The webhook reads the API key from theBUNNY_API_KEY environment variable. The default
configuration expects a Kubernetes secret named external-dns-bunny-secret with a key called
api-key.
Prepare the Helm Values File
Save this values file asbunny-values.yaml. The Grounds container image is published to the
GitHub Container Registry at ghcr.io/groundsgg/external-dns-bunny-webhook.
bunny-values.yaml
Install the Chart
Install ExternalDNS with the values file. The example pins the chart version for reproducibility.Verify that both containers in the pod report ready before you continue:You should see one pod with two ready containers — the ExternalDNS controller and the Bunny
webhook.
Verify Record Reconciliation
Create a test service or ingress with anexternal-dns.alpha.kubernetes.io/hostname annotation.
ExternalDNS picks it up on the next reconcile loop and calls the webhook, which creates the
Bunny.net DNS record.
The webhook logs an
upserted entry for hello.example.com and the record appears in the
Bunny.net DNS dashboard.Next Steps
- See the configuration guide for runtime environment variables and the Bunny-specific annotations that let you enable monitoring, weight, or smart DNS routing per record.