The Anexia Webhook Provider for ExternalDNS allows you to use Anexia's DNS API to manage DNS records for your domains.
The provider is heavily inspired by the ExternalDNS - IONOS Webhook and some inspiration taken from the External DNS - Adguard Home Provider.
See cmd/webhook/init/configuration/configuration.go for all available configuration options for the webhook sidecar, and internal/anexia/configuration.go for all available configuration options for the Anexia provider.
The Anexia Webhook Provider is provided as an OCI image in ghcr.io/probstenhias/external-dns-anexia-webhook.
The following is an example deployment for the Anexia Webhook Provider:
helm repo add bitnami https://charts.bitnami.com/bitnami
# create the anexia configuration
kubectl create secret generic anexia-configuration \
--from-literal=url='<ANEXIA_API_URL>' \
--from-literal=token='<ANEXIA_API_TOKEN>'
# create the helm values file
cat <<EOF > external-dns-anexia-values.yaml
provider: webhook
extraArgs:
webhook-provider-url: http://localhost:8888
sidecars:
- name: anexia-webhook
image: ghcr.io/probstenhias/external-dns-anexia-webhook:$RELEASE_VERSION
ports:
- containerPort: 8888
name: http
livenessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 10
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 10
timeoutSeconds: 5
env:
- name: LOG_LEVEL
value: debug
- name: ANEXIA_API_URL
valueFrom:
secretKeyRef:
name: anexia-configuration
key: url
- name: ANEXIA_API_TOKEN
valueFrom:
secretKeyRef:
name: anexia-configuration
key: token
- name: SERVER_HOST
value: "0.0.0.0"
- name: DRY_RUN
value: "false"
EOF
# install external-dns with helm
helm install external-dns-anexia bitnami/external-dns -f external-dns-anexia-values.yaml