-
Notifications
You must be signed in to change notification settings - Fork 40.1k
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
Track opened connections with a single tracker per authenticator #97857
Track opened connections with a single tracker per authenticator #97857
Conversation
@liggitt: GitHub didn't allow me to request PR reviews from the following users: ankeesler. Note that only kubernetes members and repo collaborators can review this PR, and authors cannot review their own PRs. In response to this:
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/test-infra repository. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: liggitt 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 |
468f474
to
e657543
Compare
e657543
to
ecbff22
Compare
/triage accepted |
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.
lol, i tried something remarkably similar yesterday, so that is a good sign.
one thing i still can't convince myself of: will sibling clients that use the same exec authenticator potentially interrupt each other's connections?
- scenario: 2
rest.RESTClient
's, using the sameexec.Authenticator
rest.RESTClient
A wants to make HTTP call, so it creates TCP connection to API, gets certs fromtls.Config.GetCert
, creates TLS session, starts long REST operation (i.e.,watch
?)rest.RESTClient
B wants to make HTTP call, so it creates TCP connection to API, gets certs fromtls.Config.GetCert
,exec.Authenticator
sees that cert has expired, so it goes to refresh the cert and therefore callsCloseAll()
on all the TCP connections, and thusrest.RESTClient
A's long REST operation is interrupted because the TCP connection is closed
Yes, as they did before this PR |
ah, yes. dang should have caught that! alrighty, this seems like a net improvement then. |
kind flakes were both #96803 /retest |
/cc @deads2k |
/lgtm |
Is there any chances it can be backported to v1.19? |
What type of PR is this?
/kind bug
What this PR does / why we need it:
Consolidates connection tracking when creating exec auth clients to use a single tracker per authenticator.
This side-steps the following issues to unblock exec auth:
kubectl describe
creating a new clientset per objectkubectl get
creating a new clientset per object (for some output types)Which issue(s) this PR fixes:
Fixes #91913
Does this PR introduce a user-facing change?:
/cc @enj @ankeesler
@kubernetes/sig-auth-pr-reviews