Phonebook is an operator that helps you manage DNS Record for your cloud provider from within Kubernetes. Using custom resource definitions (CRDs), you can build DNS records in a same manner you would create other resources with Kubernetes.
# This will create a new `A` record `mysubdomain.mytestdomain.com` pointing
# at `127.0.0.1``
apiVersion: se.quencer.io/v1alpha1
kind: DNSRecord
metadata:
name: dnsrecord-sample
namespace: phonebook-system
spec:
zone: mytestdomain.com
recordType: A
name: mysubdomain
ttl: 60
targets:
- 127.0.0.1
- 127.0.0.2 # If provider supports multi-target
Here's a list of all supported providers. If you need a provider that isn't yet supported, create a new issue.
AWS | Cloudflare | Azure | deSEC |
The documentation has all the information for you to get started with Phonebook.
This project was built out of need, but I also want to give a special thanks to external-dns as that project was a huge inspiration for Phonebook. A lot of the ideas here stem from my usage of external-dns over the years. I have nothing but respect for that project.