-
Notifications
You must be signed in to change notification settings - Fork 22
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
[feat] ability to customize kube client qps #101
[feat] ability to customize kube client qps #101
Conversation
863e03a
to
89591d4
Compare
Signed-off-by: Derek Brown <[email protected]>
89591d4
to
eaac42c
Compare
Hello and many thanks for this. I am curious. Is this solving an issue that you have in production usage right now? Or your suggestion is a best practice that you recommend? I am wondering though whether this change must happen centrally in the main Argo Rollouts controller so that all plugins get this capability out of the box. |
Signed-off-by: Derek Brown <[email protected]>
43eaa7f
to
c6c45f4
Compare
TL;DR; This is solving an issue we are seeing in our real environments. We are in the initial phases of adopting the Gateway API. We started observing issues with Argo Rollouts for services where we added |
The Argo Rollouts controller is a separate process/binary from any of the plugins, so it isn't currently possible to make this change within the controller in a way that would propagate to the plugins. If the overall project were trying to achieve something like this within the plugins interface, it would need to create a standard interface of command-line flags or config options that are passed into plugins. To my knowledge, this doesn't exist. Even if it did exist, the implementation of this flag in particular would be problematic, because the QPS ratelimits would be effectively double whatever I provide as a command-line option (since the controller and the plugin are separate binaries, the ratelimiters are separate). As an aside, I started a discussion about the limitations of the plugin architecture here: argoproj/argo-rollouts#4042 (comment). |
While this PR is great for the plugin, if you have the time I think it would be also useful if you also create a PR against the main rollouts controller and add code that passes down the same parameters to the plugin IF they have already been defined in the controller level Also we would need to update the docs and make it clear to the users that the QPS setting is only for the plugin. If somebody is using multiple plugins or has a different setting in the controller, right now each kubeconfig object will have it own parameters. (the doubling problem you mention). You are right that we cannot fix this, but we can document it . |
What does this PR do?