Commit 29ffee51 authored by Satnam Singh's avatar Satnam Singh

Merge pull request #10102 from mikedanese/kubeconfig-bug-fix

make clientcmd use inClusterConfig only if no other configs are available
parents b964f3c9 c93a7d64
......@@ -37,6 +37,8 @@ var (
// EnvVarCluster allows overriding the DefaultCluster using an envvar for the server name
EnvVarCluster = clientcmdapi.Cluster{Server: os.Getenv("KUBERNETES_MASTER")}
DefaultClientConfig = DirectClientConfig{*clientcmdapi.NewConfig(), "", &ConfigOverrides{}, nil}
)
// ClientConfig is used to make it easy to get an api server client
......
......@@ -18,6 +18,7 @@ package clientcmd
import (
"io"
"reflect"
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
clientcmdapi "github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd/api"
......@@ -45,11 +46,6 @@ func NewInteractiveDeferredLoadingClientConfig(loadingRules *ClientConfigLoading
}
func (config DeferredLoadingClientConfig) createClientConfig() (ClientConfig, error) {
// Are we running in a cluster? If so, use that.
icc := inClusterClientConfig{}
if icc.Possible() {
return icc, nil
}
mergedConfig, err := config.loadingRules.Load()
if err != nil {
return nil, err
......@@ -80,8 +76,18 @@ func (config DeferredLoadingClientConfig) ClientConfig() (*client.Config, error)
if err != nil {
return nil, err
}
mergedConfig, err := mergedClientConfig.ClientConfig()
if err != nil {
return nil, err
}
// Are we running in a cluster and were no other configs found? If so, use the in-cluster-config.
icc := inClusterClientConfig{}
defaultConfig, err := DefaultClientConfig.ClientConfig()
if icc.Possible() && err == nil && reflect.DeepEqual(mergedConfig, defaultConfig) {
return icc.ClientConfig()
}
return mergedClientConfig.ClientConfig()
return mergedConfig, nil
}
// Namespace implements KubeConfig
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment