Make inClusterConfigProvider thread safe

If configuration object is used concurrently
it is not safe to mutate self.
There is no need for mutation so avoid it
just in case.
This commit is contained in:
Mikhail Mazurskiy
2020-06-15 21:17:45 +10:00
parent 243a9b204e
commit 9e360eb05e

View File

@@ -548,11 +548,12 @@ func (config *inClusterClientConfig) RawConfig() (clientcmdapi.Config, error) {
} }
func (config *inClusterClientConfig) ClientConfig() (*restclient.Config, error) { func (config *inClusterClientConfig) ClientConfig() (*restclient.Config, error) {
if config.inClusterConfigProvider == nil { inClusterConfigProvider := config.inClusterConfigProvider
config.inClusterConfigProvider = restclient.InClusterConfig if inClusterConfigProvider == nil {
inClusterConfigProvider = restclient.InClusterConfig
} }
icc, err := config.inClusterConfigProvider() icc, err := inClusterConfigProvider()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -572,7 +573,7 @@ func (config *inClusterClientConfig) ClientConfig() (*restclient.Config, error)
} }
} }
return icc, err return icc, nil
} }
func (config *inClusterClientConfig) Namespace() (string, bool, error) { func (config *inClusterClientConfig) Namespace() (string, bool, error) {