Awesome
ExternalDNS - Anexia Webhook Provider
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.
Configuration
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.
Kubernetes Deployment
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