-
Notifications
You must be signed in to change notification settings - Fork 187
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
KNP agent should pick the larger of the two server counts #675
Conversation
Welcome @konryd! |
Hi @konryd. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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-sigs/prow repository. |
…r the ServerCount() method in clientset
/ok-to-test |
pkg/agent/clientset.go
Outdated
serverCount := countFromLeases | ||
countSource := "KNP server lease count" | ||
if countFromResponses > serverCount { | ||
serverCount = countFromResponses |
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.
Not sure this is what we want. This clearly works when we are scaling up the number of KNP servers. However I believe this prevents us from easily scaling down the number of KNP servers. I thought was one of the goals of the lease system.
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.
That depends on how the static --server-count
flag is set. With these changes it can:
- be set to 1 to rely on leases alone
- be set to some-default-value to provide a lower bound as a safety
The default lower bound is critical when we're gradually replacing agents and servers in parallel:
We will still have a portion of the servers not recording their lease and a portion of agents assuming too-low count (because they only look at leases).
pkg/agent/clientset.go
Outdated
var countSourceLabel string | ||
|
||
switch cs.serverCountSource { | ||
case "": |
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.
Golang does not do fall through (https://go.dev/ref/spec#Expression_switches "the first one that equals the switch expression triggers execution of the statements of the associated case; the other cases are skipped") So I believe empty string is going to silently do nothing, which I don't think is what we want.
Did you mean the following?
case "", "default":
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! Fixed.
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cheftako, konryd The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This way, when agent and server both switch from server-provided counts to counting leases, we will maintain compatibility in both directions:
Thanks to this compatibility, enabling lease-counting in a fleet of clusters is much more practical (there's no need for two separate, interdependent rollouts).