From fc262346663d81b130f014fb1c76276ec6f3d75a Mon Sep 17 00:00:00 2001 From: Wahab Ali Date: Thu, 4 Feb 2021 08:08:46 +0500 Subject: [PATCH] Use `NewCapabilities()` func instead of global `DefaultCapabilities` Signed-off-by: Wahab Ali --- cmd/helm/helm_test.go | 2 +- pkg/action/action_test.go | 2 +- pkg/action/install.go | 2 +- pkg/action/install_test.go | 2 +- pkg/chartutil/capabilities.go | 24 +++++++++++++----------- pkg/chartutil/capabilities_test.go | 5 ++--- pkg/chartutil/values.go | 2 +- 7 files changed, 20 insertions(+), 19 deletions(-) diff --git a/cmd/helm/helm_test.go b/cmd/helm/helm_test.go index 5e59c41ed..4a7875fb1 100644 --- a/cmd/helm/helm_test.go +++ b/cmd/helm/helm_test.go @@ -111,7 +111,7 @@ func executeActionCommandStdinC(store *storage.Storage, in *os.File, cmd string) actionConfig := &action.Configuration{ Releases: store, KubeClient: &kubefake.PrintingKubeClient{Out: ioutil.Discard}, - Capabilities: chartutil.DefaultCapabilities, + Capabilities: chartutil.NewCapabilities(), Log: func(format string, v ...interface{}) {}, } diff --git a/pkg/action/action_test.go b/pkg/action/action_test.go index fedf260fb..13e113eee 100644 --- a/pkg/action/action_test.go +++ b/pkg/action/action_test.go @@ -83,7 +83,7 @@ func actionConfigFixture(t *testing.T) *Configuration { return &Configuration{ Releases: storage.Init(driver.NewMemory()), KubeClient: &kubefake.FailingKubeClient{PrintingKubeClient: kubefake.PrintingKubeClient{Out: ioutil.Discard}}, - Capabilities: chartutil.DefaultCapabilities, + Capabilities: chartutil.NewCapabilities(), RegistryClient: registryClient, Log: func(format string, v ...interface{}) { t.Helper() diff --git a/pkg/action/install.go b/pkg/action/install.go index 4de0b64e6..e96f2341d 100644 --- a/pkg/action/install.go +++ b/pkg/action/install.go @@ -196,7 +196,7 @@ func (i *Install) Run(chrt *chart.Chart, vals map[string]interface{}) (*release. if i.ClientOnly { // Add mock objects in here so it doesn't use Kube API server // NOTE(bacongobbler): used for `helm template` - i.cfg.Capabilities = chartutil.DefaultCapabilities + i.cfg.Capabilities = chartutil.NewCapabilities() i.cfg.Capabilities.APIVersions = append(i.cfg.Capabilities.APIVersions, i.APIVersions...) i.cfg.KubeClient = &kubefake.PrintingKubeClient{Out: ioutil.Discard} diff --git a/pkg/action/install_test.go b/pkg/action/install_test.go index 2237e1de6..8b5da268b 100644 --- a/pkg/action/install_test.go +++ b/pkg/action/install_test.go @@ -118,7 +118,7 @@ func TestInstallReleaseClientOnly(t *testing.T) { instAction.ClientOnly = true instAction.Run(buildChart(), nil) // disregard output - is.Equal(instAction.cfg.Capabilities, chartutil.DefaultCapabilities) + is.Equal(instAction.cfg.Capabilities, chartutil.NewCapabilities()) is.Equal(instAction.cfg.KubeClient, &kubefake.PrintingKubeClient{Out: ioutil.Discard}) } diff --git a/pkg/chartutil/capabilities.go b/pkg/chartutil/capabilities.go index c002e33f2..a69ec9282 100644 --- a/pkg/chartutil/capabilities.go +++ b/pkg/chartutil/capabilities.go @@ -35,17 +35,6 @@ const ( var ( // DefaultVersionSet is the default version set, which includes only Core V1 ("v1"). DefaultVersionSet = allKnownVersions() - - // DefaultCapabilities is the default set of capabilities. - DefaultCapabilities = &Capabilities{ - KubeVersion: KubeVersion{ - Version: fmt.Sprintf("v%d.%d.0", k8sVersionMajor, k8sVersionMinor), - Major: strconv.Itoa(k8sVersionMajor), - Minor: strconv.Itoa(k8sVersionMinor), - }, - APIVersions: DefaultVersionSet, - HelmVersion: helmversion.Get(), - } ) // Capabilities describes the capabilities of the Kubernetes cluster. @@ -58,6 +47,19 @@ type Capabilities struct { HelmVersion helmversion.BuildInfo } +// NewCapabilities returns the default set of capabilities. +func NewCapabilities() *Capabilities { + return &Capabilities{ + KubeVersion: KubeVersion{ + Version: fmt.Sprintf("v%d.%d.0", k8sVersionMajor, k8sVersionMinor), + Major: strconv.Itoa(k8sVersionMajor), + Minor: strconv.Itoa(k8sVersionMinor), + }, + APIVersions: DefaultVersionSet, + HelmVersion: helmversion.Get(), + } +} + // KubeVersion is the Kubernetes version. type KubeVersion struct { Version string // Kubernetes version diff --git a/pkg/chartutil/capabilities_test.go b/pkg/chartutil/capabilities_test.go index 7134abfc5..49b67cf38 100644 --- a/pkg/chartutil/capabilities_test.go +++ b/pkg/chartutil/capabilities_test.go @@ -41,7 +41,7 @@ func TestDefaultVersionSet(t *testing.T) { } func TestDefaultCapabilities(t *testing.T) { - kv := DefaultCapabilities.KubeVersion + kv := NewCapabilities().KubeVersion if kv.String() != "v1.20.0" { t.Errorf("Expected default KubeVersion.String() to be v1.20.0, got %q", kv.String()) } @@ -60,8 +60,7 @@ func TestDefaultCapabilities(t *testing.T) { } func TestDefaultCapabilitiesHelmVersion(t *testing.T) { - hv := DefaultCapabilities.HelmVersion - + hv := NewCapabilities().HelmVersion if hv.Version != "v3.5" { t.Errorf("Expected default HelmVersion to be v3.5, got %q", hv.Version) } diff --git a/pkg/chartutil/values.go b/pkg/chartutil/values.go index e1cdf4642..9c2b71955 100644 --- a/pkg/chartutil/values.go +++ b/pkg/chartutil/values.go @@ -136,7 +136,7 @@ type ReleaseOptions struct { // This takes both ReleaseOptions and Capabilities to merge into the render values. func ToRenderValues(chrt *chart.Chart, chrtVals map[string]interface{}, options ReleaseOptions, caps *Capabilities) (Values, error) { if caps == nil { - caps = DefaultCapabilities + caps = NewCapabilities() } top := map[string]interface{}{ "Chart": chrt.Metadata,