A DynDns service for Kubernetes. There a lots of ways to do dynamic DNS, this is how I decided to do it.
This creates a kubernetes cronjob in the namespace dyndns
. The cronjob checks your current WAN ip
address, if it has changed it pushes up the changed ip address to Namecheap. Specify any number of
domains.
ℹ️ Currently only supports Namecheap.
- In the Namecheap DNS console, you'll need to enable Dynamic DNS and get a Dynmaic DNS Password, a 32 character hash.
- Create a copy of the generic env for your use in the
env
dir kubernetes-manifests/env/generic. - Update the kubernetes-manifests/env/generic/configmap-patch.yaml with connection details for the Redis instance you are bringing in.
- Create a json file like the one in this repo for each of the domains you want to manage DNS for. examples/domains.json
- Create a the
domain-config
secret.OR if you use sealed secrets.kubectl create secret generic domain-config --from-file=domains.json
kubectl create secret generic domain-config \ -o yaml \ -n dyndns \ --dry-run=client \ --from-file=domains.json | \ kubeseal --format yaml > kubernetes-manifests/env/<my-new-env>/sealed-secret-domains.yaml
- If you use ArgoCD, fork this app and the example Argo app in examples/argocd-dyndns.yaml will get you moving.
- Create a Grafana dashboard/ alert for DynDNS
- Support more registrars.
- Add more tests