external-dns updates incomplete and infinite loop when ingress has several external addresses (cloudflare provider)

Created on 26 Aug 2018  路  19Comments  路  Source: kubernetes-sigs/external-dns

I think this issue is the same as described in:
https://kubernetes.slack.com/archives/C771MKDKQ/p1509029114000201

Even if there are no changes, and DNS looks correctly, I see and endless stream of updates:

time="2018-08-26T18:01:17Z" level=debug msg="Endpoints generated from ingress: logging/logging-kibana: [kibana.k8s.davidkarlsen.com 0 IN A 192.168.3.3;192.168.3.4;192.168.3.5 kibana.k8s.davidkarlsen.com 0 IN A 192.168.3.3;192.168.3.4;192.168.3.5]"
time="2018-08-26T18:01:17Z" level=debug msg="Removing duplicate endpoint kibana.k8s.davidkarlsen.com 0 IN A 192.168.3.3;192.168.3.4;192.168.3.5"
time="2018-08-26T18:01:23Z" level=info msg="Changing record." action=UPDATE record=kibana.k8s.davidkarlsen.com ttl=1 type=A zone=c1c51c73b8d326febfe9c5fab78ccf43
time="2018-08-26T18:01:29Z" level=info msg="Changing record." action=UPDATE record=kibana.k8s.davidkarlsen.com ttl=1 type=TXT zone=c1c51c73b8d326febfe9c5fab78ccf43

note "A 192.168.3.3;192.168.3.4;192.168.3.5 "

I think there is some flaw since the record generated from ingress has three addresses, but there is only one (the first one) in DNS:

dig kibana.k8s.davidkarlsen.com

; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> kibana.k8s.davidkarlsen.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55558
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 713665436d83e2f8826fc84c5b82ebe92ef3a082a79cb40f (good)
;; QUESTION SECTION:
;kibana.k8s.davidkarlsen.com.   IN      A

;; ANSWER SECTION:
kibana.k8s.davidkarlsen.com. 299 IN     A       192.168.3.3

;; AUTHORITY SECTION:
com.                    162976  IN      NS      m.gtld-servers.net.
com.                    162976  IN      NS      b.gtld-servers.net.
com.                    162976  IN      NS      h.gtld-servers.net.
com.                    162976  IN      NS      i.gtld-servers.net.
com.                    162976  IN      NS      l.gtld-servers.net.
com.                    162976  IN      NS      a.gtld-servers.net.
com.                    162976  IN      NS      f.gtld-servers.net.
com.                    162976  IN      NS      g.gtld-servers.net.
com.                    162976  IN      NS      e.gtld-servers.net.
com.                    162976  IN      NS      k.gtld-servers.net.
com.                    162976  IN      NS      j.gtld-servers.net.
com.                    162976  IN      NS      d.gtld-servers.net.
com.                    162976  IN      NS      c.gtld-servers.net.

;; Query time: 199 msec
;; SERVER: 192.168.3.2#53(192.168.3.2)
;; WHEN: Sun Aug 26 20:03:19 CEST 2018
;; MSG SIZE  rcvd: 324

note only one A record is in DNS.

And indeed if I change the other externalAddresses for the ingress to only have one address the excessive updates do not happen.

I have tested with v0.5.4 and v0.5.5 - both have the same problem.

Most helpful comment

This looks interesting, I will take at it, if no one already had

All 19 comments

This looks interesting, I will take at it, if no one already had

That would be great - I don't have go skills myself - and on Slack maintainers indicated they did not have the time for it

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten

/remove-lifecycle rotten

Hello @davidkarlsen, did you find a solution?
I'm hitting the Cloudflare API req limit because of these constant calls.

Not to my knowledge. This is still a bug. I had to work around it.

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten

Not stale

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

@fejta-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/reopen

@linki: Reopened this issue.

In response to this:

/reopen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/remove-lifecycle rotten

Not to my knowledge. This is still a bug. I had to work around it.

Can you share how you work around it? thanks

This should be fixed in 0.7.2, could you confirm?

No response, so I'll consider this fixed. If not, please create another issue with steps to reproduce, or ideally a test in cloudflare_test.go. The tests are really easy to write :)

/close

@sheerun: Closing this issue.

In response to this:

No response, so I'll consider this fixed. If not, please create another issue with steps to reproduce, or ideally a test in cloudflare_test.go. The tests are really easy to write :)

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Was this page helpful?
0 / 5 - 0 ratings