diff --git a/pkg/minikube/kubeconfig/kubeconfig.go b/pkg/minikube/kubeconfig/kubeconfig.go index bfe6ce8ed0..5cedc698d2 100644 --- a/pkg/minikube/kubeconfig/kubeconfig.go +++ b/pkg/minikube/kubeconfig/kubeconfig.go @@ -87,7 +87,14 @@ func PathFromEnv() string { if kubeConfigEnv == "" { return constants.KubeconfigPath } - return filepath.SplitList(kubeConfigEnv)[0] + kubeConfigFiles := filepath.SplitList(kubeConfigEnv) + for _, kubeConfigFile := range kubeConfigFiles { + if kubeConfigFile != "" { + return kubeConfigFile + } + glog.Infof("Ignoring empty entry in %s env var", constants.KubeconfigEnvVar) + } + return constants.KubeconfigPath } // extractIP returns the IP address stored for minikube in the kubeconfig specified diff --git a/pkg/minikube/kubeconfig/kubeconfig_test.go b/pkg/minikube/kubeconfig/kubeconfig_test.go index 18be965b76..9e5d853546 100644 --- a/pkg/minikube/kubeconfig/kubeconfig_test.go +++ b/pkg/minikube/kubeconfig/kubeconfig_test.go @@ -555,11 +555,23 @@ func TestGetKubeConfigPath(t *testing.T) { input: "/home/fake/.kube/.kubeconfig:/home/fake2/.kubeconfig", want: "/home/fake/.kube/.kubeconfig", }, + { + input: ":/home/fake/.kube/.kubeconfig:/home/fake2/.kubeconfig", + want: "/home/fake/.kube/.kubeconfig", + }, + { + input: ":", + want: "$HOME/.kube/config", + }, + { + input: "", + want: "$HOME/.kube/config", + }, } for _, test := range tests { os.Setenv(clientcmd.RecommendedConfigPathEnvVar, test.input) - if result := PathFromEnv(); result != test.want { + if result := PathFromEnv(); result != os.ExpandEnv(test.want) { t.Errorf("Expected first splitted chunk, got: %s", result) } }