diff --git a/pkg/action/action.go b/pkg/action/action.go index a36454321..28d88c3ed 100644 --- a/pkg/action/action.go +++ b/pkg/action/action.go @@ -211,9 +211,9 @@ func (c *Configuration) recordRelease(r *release.Release) { // InitActionConfig initializes the action configuration func (c *Configuration) Init(envSettings *cli.EnvSettings, allNamespaces bool, helmDriver string, log DebugLog) error { - kubeconfig := envSettings.KubeConfig() + getter := envSettings.RESTClientGetter() - kc := kube.New(kubeconfig) + kc := kube.New(getter) kc.Log = log clientset, err := kc.Factory.KubernetesClientSet() @@ -243,7 +243,7 @@ func (c *Configuration) Init(envSettings *cli.EnvSettings, allNamespaces bool, h panic("Unknown driver in HELM_DRIVER: " + helmDriver) } - c.RESTClientGetter = kubeconfig + c.RESTClientGetter = getter c.KubeClient = kc c.Releases = store c.Log = log diff --git a/pkg/cli/environment.go b/pkg/cli/environment.go index 041b2f841..28e7873be 100644 --- a/pkg/cli/environment.go +++ b/pkg/cli/environment.go @@ -39,9 +39,11 @@ import ( // EnvSettings describes all of the environment settings. type EnvSettings struct { namespace string - kubeConfig string config genericclioptions.RESTClientGetter configOnce sync.Once + + // KubeConfig is the path to the kubeconfig file + KubeConfig string // KubeContext is the name of the kubeconfig context. KubeContext string // Debug indicates whether or not Helm is running in Debug mode. @@ -73,7 +75,7 @@ func New() *EnvSettings { // AddFlags binds flags to the given flagset. func (s *EnvSettings) AddFlags(fs *pflag.FlagSet) { fs.StringVarP(&s.namespace, "namespace", "n", s.namespace, "namespace scope for this request") - fs.StringVar(&s.kubeConfig, "kubeconfig", "", "path to the kubeconfig file") + fs.StringVar(&s.KubeConfig, "kubeconfig", "", "path to the kubeconfig file") fs.StringVar(&s.KubeContext, "kube-context", s.KubeContext, "name of the kubeconfig context to use") fs.BoolVar(&s.Debug, "debug", s.Debug, "enable verbose output") fs.StringVar(&s.RegistryConfig, "registry-config", s.RegistryConfig, "path to the registry config file") @@ -100,8 +102,8 @@ func (s *EnvSettings) EnvVars() map[string]string { "HELM_KUBECONTEXT": s.KubeContext, } - if s.kubeConfig != "" { - envvars["KUBECONFIG"] = s.kubeConfig + if s.KubeConfig != "" { + envvars["KUBECONFIG"] = s.KubeConfig } return envvars @@ -113,16 +115,16 @@ func (s *EnvSettings) Namespace() string { return s.namespace } - if ns, _, err := s.KubeConfig().ToRawKubeConfigLoader().Namespace(); err == nil { + if ns, _, err := s.RESTClientGetter().ToRawKubeConfigLoader().Namespace(); err == nil { return ns } return "default" } -//KubeConfig gets the kubeconfig from EnvSettings -func (s *EnvSettings) KubeConfig() genericclioptions.RESTClientGetter { +//RESTClientGetter gets the kubeconfig from EnvSettings +func (s *EnvSettings) RESTClientGetter() genericclioptions.RESTClientGetter { s.configOnce.Do(func() { - s.config = kube.GetConfig(s.kubeConfig, s.KubeContext, s.namespace) + s.config = kube.GetConfig(s.KubeConfig, s.KubeContext, s.namespace) }) return s.config }