{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes-incubator/external-dns/issues/405","repository_url":"https://api.github.com/repos/kubernetes-incubator/external-dns","labels_url":"https://api.github.com/repos/kubernetes-incubator/external-dns/issues/405/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes-incubator/external-dns/issues/405/comments","events_url":"https://api.github.com/repos/kubernetes-incubator/external-dns/issues/405/events","html_url":"https://github.com/kubernetes-incubator/external-dns/issues/405","id":277479881,"number":405,"title":"Discussion: Implement target resolution feature in ExternalDNS","user":{"login":"amoskyler","id":5360325,"avatar_url":"https://avatars2.githubusercontent.com/u/5360325?v=4","gravatar_id":"","url":"https://api.github.com/users/amoskyler","html_url":"https://github.com/amoskyler","followers_url":"https://api.github.com/users/amoskyler/followers","following_url":"https://api.github.com/users/amoskyler/following{/other_user}","gists_url":"https://api.github.com/users/amoskyler/gists{/gist_id}","starred_url":"https://api.github.com/users/amoskyler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amoskyler/subscriptions","organizations_url":"https://api.github.com/users/amoskyler/orgs","repos_url":"https://api.github.com/users/amoskyler/repos","events_url":"https://api.github.com/users/amoskyler/events{/privacy}","received_events_url":"https://api.github.com/users/amoskyler/received_events","type":"User","site_admin":false},"labels":[{"id":536153583,"url":"https://api.github.com/repos/kubernetes-incubator/external-dns/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-11-28T17:55:32Z","updated_at":"2017-11-30T19:09:54Z","closed_at":null,"author_association":"NONE","body":"Hey all,\r\n\r\nI have a use case for ExternalDNS where I need to ensure my DNS targets are resolving before modifying the DNS record.\r\n\r\nCurrently this is accomplished by polling the target ELB with a dig command, and upserting the record once it resolves.\r\n\r\nI was thinking I could implement an annotation which specifies whether the target should be resolving before updating the DNS. Something like:\r\n`external-dns.alpha.kubernetes.io/test_resolve=true`\r\n\r\nThen modifying the update logic to act accordingly.\r\n\r\nWhere would the best place in the code to accomplish this task? Any thoughts on the best design pattern to allow for a wide variety of use cases?"},"comment":{"url":"https://api.github.com/repos/kubernetes-incubator/external-dns/issues/comments/348289450","html_url":"https://github.com/kubernetes-incubator/external-dns/issues/405#issuecomment-348289450","issue_url":"https://api.github.com/repos/kubernetes-incubator/external-dns/issues/405","id":348289450,"user":{"login":"amoskyler","id":5360325,"avatar_url":"https://avatars2.githubusercontent.com/u/5360325?v=4","gravatar_id":"","url":"https://api.github.com/users/amoskyler","html_url":"https://github.com/amoskyler","followers_url":"https://api.github.com/users/amoskyler/followers","following_url":"https://api.github.com/users/amoskyler/following{/other_user}","gists_url":"https://api.github.com/users/amoskyler/gists{/gist_id}","starred_url":"https://api.github.com/users/amoskyler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amoskyler/subscriptions","organizations_url":"https://api.github.com/users/amoskyler/orgs","repos_url":"https://api.github.com/users/amoskyler/repos","events_url":"https://api.github.com/users/amoskyler/events{/privacy}","received_events_url":"https://api.github.com/users/amoskyler/received_events","type":"User","site_admin":false},"created_at":"2017-11-30T19:09:54Z","updated_at":"2017-11-30T19:09:54Z","author_association":"NONE","body":"*Use Case:* Migrating clusters without downtime.\r\n\r\n*Example:*\r\n- Service A is in cluster 1 with a CNAME record, `test.example.net` which targets an ELB.\r\n- Service A will be deployed to cluster 2 with the same domain `test.example.net`, but a new ELB will created for it, and therefore the CNAME record will need to be updated.\r\n\r\nI require the CNAME record to be updated only after the ELB resolves.\r\n\r\nI'm not sure I would argue for the deletion of the record in the case the target doesn't resolve. My goal isn't so much consistency between the cluster and DNS provider, but just a guarantee that my target resolves before upserting a record, as premature updates are very expensive and can break all incoming traffic. Perhaps this could be a configuration options. Paired with a timeout, I could see this being a useful feature.\r\n\r\nThe purpose of supporting this as a first-class feature of external-dns is to remove the requirement to externally orchestrate the target polling, and annotation lifecycle.\r\n\r\n"}}
{"actor":{"display_login":"amoskyler"}}