diff --git a/pkg/client/unversioned/clientcmd/merged_client_builder.go b/pkg/client/unversioned/clientcmd/merged_client_builder.go index f64903335a3..407230369be 100644 --- a/pkg/client/unversioned/clientcmd/merged_client_builder.go +++ b/pkg/client/unversioned/clientcmd/merged_client_builder.go @@ -114,8 +114,11 @@ func (config *DeferredLoadingClientConfig) ClientConfig() (*restclient.Config, e // "empty due to defaults" // TODO: this shouldn't be a global - the client config rules should be // handling this. - defaultConfig, err := DefaultClientConfig.ClientConfig() - if err == nil && !reflect.DeepEqual(mergedConfig, defaultConfig) { + defaultConfig, defErr := DefaultClientConfig.ClientConfig() + if IsConfigurationInvalid(defErr) && !IsEmptyConfig(err) { + return mergedConfig, nil + } + if defErr == nil && !reflect.DeepEqual(mergedConfig, defaultConfig) { return mergedConfig, nil } } diff --git a/pkg/client/unversioned/clientcmd/merged_client_builder_test.go b/pkg/client/unversioned/clientcmd/merged_client_builder_test.go index 304c4ec7460..b45a87f642f 100644 --- a/pkg/client/unversioned/clientcmd/merged_client_builder_test.go +++ b/pkg/client/unversioned/clientcmd/merged_client_builder_test.go @@ -174,6 +174,16 @@ func TestInClusterConfig(t *testing.T) { result: config2, err: nil, }, + + "in-cluster not checked when default is invalid": { + defaultConfig: &DefaultClientConfig, + clientConfig: &testClientConfig{config: config2}, + icc: &testICC{}, + + checkedICC: false, + result: config2, + err: nil, + }, } for name, test := range testCases {