Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR:
helper.GetKubeconfig
and replaces it withctrl.GetConfig()
CLIENT_QPS
andCLIENT_BURST
as configs (because the defaults are very low 20/30)Authentication is implemented by reading the
USERID_HEADER
andGROUPS_HEADER
in each request (seeNewRequestAuthenticator()
).Authorization is implemented with SubjectAccessReviews (see
NewRequestAuthorizer()
). TheNewRequestAuthorizer()
method uses theauthorizerfactory.DelegatingAuthorizerConfig
fromk8s.io/apiserver/pkg/authorization/authorizerfactory
and has a 10-second cache to not check the user is still authorized more than once every 10 seconds.To define what auth a specific handler requires, we have a new
a.requireAuth()
method, which takes a new[]ResourcePolicy
list, that can easily be constructed usingNewResourcePolicy()
in a clear way.