don't ignore UID impersonation in webhook clients

Kubernetes-commit: 8d3a498c879aab30d90d3429ffd364c3c7afe9de
This commit is contained in:
Stanislav Laznicka 2023-03-16 11:14:29 +01:00 committed by Kubernetes Publisher
parent 684582ce79
commit 7f7fd322de
2 changed files with 25 additions and 0 deletions

View File

@ -243,6 +243,7 @@ func restConfigFromKubeconfig(configAuthInfo *clientcmdapi.AuthInfo) (*rest.Conf
if len(configAuthInfo.Impersonate) > 0 {
config.Impersonate = rest.ImpersonationConfig{
UserName: configAuthInfo.Impersonate,
UID: configAuthInfo.ImpersonateUID,
Groups: configAuthInfo.ImpersonateGroups,
Extra: configAuthInfo.ImpersonateUserExtra,
}

View File

@ -64,6 +64,30 @@ func TestAuthenticationDetection(t *testing.T) {
},
expected: rest.Config{BearerToken: "foo"},
},
{
name: "match with impersonation",
serverName: "foo.com",
kubeconfig: clientcmdapi.Config{
AuthInfos: map[string]*clientcmdapi.AuthInfo{
"foo.com": {
Token: "foo",
Impersonate: "user-a",
ImpersonateUID: "user-a-uid-1111",
ImpersonateGroups: []string{"user-a-group1", "user-a-group2"},
ImpersonateUserExtra: map[string][]string{"foo": {"bar", "baz", "etc"}},
},
},
},
expected: rest.Config{
BearerToken: "foo",
Impersonate: rest.ImpersonationConfig{
UserName: "user-a",
UID: "user-a-uid-1111",
Groups: []string{"user-a-group1", "user-a-group2"},
Extra: map[string][]string{"foo": {"bar", "baz", "etc"}},
},
},
},
{
name: "partial star match",
serverName: "foo.com",