-
Notifications
You must be signed in to change notification settings - Fork 101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prototype of external-dns + coredns based configuration #14
Conversation
* Use external-dns to populate coreDNS conf with etcd backend Based on https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/coredns.md * Use `--annotation-filter` to figure out health status Visible limitaitons: * coreDNS etcd plugin can support only single authoritative zone * Annotation status is global to Ingress, so all `host` entries affected It might imply single `host` entry per Gslb requirement Runtime example: * External-dns logs ``` time="2019-12-23T14:50:29Z" level=debug msg="Endpoints generated from ingress: default/example-gslb: [app.cloud.absa.internal 0 IN A 172.17.0.2 [] app1.cloud.absa.external 0 IN A 172.17.0.2 [] app2.cloud.absa.external 0 IN A 172.17.0.2 [] ``` * Query test ``` dnstools# dig @gslb-coredns-coredns app1.cloud.absa.external +short 172.17.0.2 ``` ``` dnstools# dig @gslb-coredns-coredns SOA app1.cloud.absa.external +short ns.dns.absa.external. hostmaster.absa.external. 1577113239 7200 1800 86400 30 ``` So coredns etcd plugin(skyDNS) can serve single authoritative zone Apart from above mentioned limitations this setup has advantages of being very dynamic and decoupled from ohmyglb controller implementation. On ohmyglb side we can control dns record population through annotations instead of direct writes to coreDNS configmap
Most probably I will redo the external-dns source to be the CRD - https://github.com/kubernetes-sigs/external-dns/blob/master/docs/contributing/crd-source.md . Looks very flexible |
A single |
@ytsarev Given #14 (comment), I'll leave this review as is and wait for the refactored PR? |
@donovanmuller yes, exactly, going to amend the PR soon |
@donovanmuller PR amended, CRD stuff works! Let's merge it in and I will continue on ohmyglb operator control code update |
Based on https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/coredns.md
--annotation-filter
to figure out health statusVisible limitaitons:
host
entries affectedIt might imply single
host
entry per Gslb requirementRuntime example:
So coredns etcd plugin(skyDNS) can serve single authoritative zone
Apart from above mentioned limitations this setup has advantages of
being very dynamic and decoupled from ohmyglb controller implementation.
On ohmyglb side we can control dns record population through annotations
instead of direct writes to coreDNS configmap