kubeconfig: add explicit path, if specified to loading precedence

Kubernetes-commit: 7c8e4c83fbe66548aeb446562c29c42efe1d4386
This commit is contained in:
Maciej Szulik
2020-07-21 15:45:36 +02:00
committed by Kubernetes Publisher
parent 68bb4a9525
commit 87661a7415
4 changed files with 52 additions and 2 deletions

View File

@@ -865,3 +865,46 @@ func TestDeduplicate(t *testing.T) {
}
}
}
func TestLoadingGetLoadingPrecedence(t *testing.T) {
testCases := map[string]struct {
rules *ClientConfigLoadingRules
env string
precedence []string
}{
"default": {
precedence: []string{filepath.Join(os.Getenv("HOME"), ".kube/config")},
},
"explicit": {
rules: &ClientConfigLoadingRules{
ExplicitPath: "/explicit/kubeconfig",
},
precedence: []string{"/explicit/kubeconfig"},
},
"envvar-single": {
env: "/env/kubeconfig",
precedence: []string{"/env/kubeconfig"},
},
"envvar-multiple": {
env: "/env/kubeconfig:/other/kubeconfig",
precedence: []string{"/env/kubeconfig", "/other/kubeconfig"},
},
}
kubeconfig := os.Getenv("KUBECONFIG")
defer os.Setenv("KUBECONFIG", kubeconfig)
for name, test := range testCases {
t.Run(name, func(t *testing.T) {
os.Setenv("KUBECONFIG", test.env)
rules := test.rules
if rules == nil {
rules = NewDefaultClientConfigLoadingRules()
}
actual := rules.GetLoadingPrecedence()
if !reflect.DeepEqual(actual, test.precedence) {
t.Errorf("expect %v, got %v", test.precedence, actual)
}
})
}
}