-
Notifications
You must be signed in to change notification settings - Fork 690
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
external-dns should not delete DNS record when HTTPProxy is not completely invalid #5337
Comments
Adding to 1.26 milestone for prioritization discussion |
Some thoughts from triage:
|
xref. https://github.com/projectcontour/contour/blob/main/design/httpproxy-conflict.md for some previous thinking on this topic, that is partially implemented. |
Another option to address the external-dns integration issue mentioned in description can be to provide an additional flag explicitly for create/delete dns record instruction in the proxy status, which external-dns can look at to make the dns record update decision. |
This would likely be a simpler option in the short term. A possible approach would be to have external-dns look for an annotation on HTTPProxies that would define whether to create a DNS record even if the proxy is not marked "valid". I've been looking through external-dns and don't see any existing functionality that exactly matches this, but I'll open a discussion with that project to get their input. |
Might be fixed by kubernetes-sigs/external-dns@42aaa58 (kubernetes-sigs/external-dns#3978) |
Closing this out as it is resolved by the above external-dns PR which will create/keep DNS records for root HTTPProxies regardless of whether they are valid or not. |
Ended up trying this myself and it should work as expected. Do note though that it will probably be in the next release of external-dns after v0.14.0. The PR @lubronzhan mentioned above was merged a week or so after v0.14.0 was cut. |
If there is incorrect (pointing to non-existing child-proxy) or duplicate (multiple inclusions with same match condition) inclusion on a root-proxy instance, it returns status as invalid. However apart from incorrect/duplicate inclusion, the other inclusions continue to function. In such cases, contour should return status like partially-valid. Other status fields like reason can be used to indicate what is wrong. This will allow integrations like external-dns to distinguish between cases where proxy is completely broken and DNS record for virtualhost fqdn can be removed vs. when only some inclusions/routes are not working and it should continue to maintain DNS record for fqdn so that those inclusions/routes can continue to be used. Right now external-dns removes DNS records for all invalid proxies essentially rendering the entire endpoint useless (see https://github.com/kubernetes-sigs/external-dns/blob/master/source/contour_httpproxy.go#L144).
The text was updated successfully, but these errors were encountered: