-
Notifications
You must be signed in to change notification settings - Fork 5k
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
Move consulcatalog provider to only use health apis #9140
Move consulcatalog provider to only use health apis #9140
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @chuckyz 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @chuckyz 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👌
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
What does this PR do?
This PR drops the usage of the Catalog API within the Consul Catalog provider and switches to only using the Health API(s). This is nicely compatible with the Connect endpoints as they live under the same API and output exactly the same types.
Motivation
The Health API, with the cache query parameter set to
true
, uses the streaming health check system. This means that if streaming is enabled in a Consul cluster, Traefik is now effectively 'free' to run, going so far as an operator can set the refresh interval down to 1 second and likely not notice anything in their Consul cluster.Even if streaming is disabled, this still cuts the request rate in half, meaning$\approx\frac{1}{2}$ bandwidth usage on top of that which is helpful in really large clusters.
Supersedes #8834
More
Additional Notes
Co-authored-by: Charles Zaffery czaffery@roblox.com