Skip to content
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

CoreDNS Provider: ETCD datastore version #659

Closed
muffin87 opened this issue Aug 2, 2018 · 3 comments · Fixed by #686
Closed

CoreDNS Provider: ETCD datastore version #659

muffin87 opened this issue Aug 2, 2018 · 3 comments · Fixed by #686

Comments

@muffin87
Copy link

muffin87 commented Aug 2, 2018

Hi everyone,

I did some experiments with external-dns and CoreDNS.
I'm running Kubernetes On-Prem and want a dynamic DNS server which holds the records for all Services from the type: LoadBalancer and Ingress Objects. The idea was to delegate a sub domain to the this dynamic DNS server.

So I started external-dns with the provider CoreDNS:

Frist thing I notice was that I need a ETCD cluster. So I added a single node ETCD cluster into the same POD. With that in place external-dns pushes key values pairs into ETCD. Next step was to integrate CoreDNS. I added CoreDNS to the Pod and tried to query the A records external-dns pushed. And I saw nothing.

I jumped into debugging and found out that external-dns pushes into etcdv2 datastore and CoreDNS tried to read from etcdv3 datastore. I migrated the etcdv2 datastore to v3 and after that CoreDNS gives me the answers i expcted.

So my question is did I miss something? Is there a config parameter somewhere where I can specify the etcd datastore version? Or is my setup wrong?

external-dns config:

 args:
    - --source=service
    - --source=ingress
    - --provider=coredns
    - --policy=sync
    - --registry=txt
    - --log-format=text
    - --log-level=debug
    - --metrics-address=:7979

CoreDNS config:

  - args:
    - -conf
    - /etc/coredns/Corefile
    - -dns.port
    - "10053"

Corefile: |-
    .:10053 {
      cache 30
      errors
      etcd example.com {
        path /skydns
        endpoint http://localhost:2379
      }
      health
      loadbalance round_robin
      log
      prometheus 0.0.0.0:9153
    }
@shashidharatd
Copy link

The CoreDNS provider in external-dns does work with etcd v2 client. it needs to migrate to use etcd v3 client, as recent version of CoreDNS etcd plugin migrated to etcd v3.

@shashidharatd
Copy link

The workaround could be to use older version of CoreDNS server

@muffin87
Copy link
Author

@shashidharatd thanks for your response. That clarifies why external-dns is using etcd v2 client. As a workaround I'm currently using SkyDNS. I will also try to use an older version of CoreDNS.

Are there any plans to migrate the CoreDNS provider to etcd v3 in the near future?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants