From f8df1708bf8c935ff39e46034478b6ce9eb0cd9d Mon Sep 17 00:00:00 2001 From: AI Builder Date: Sat, 11 Jul 2026 14:26:50 -0700 Subject: [PATCH] pkg/chart/common: remove testing import from non-test code Replace testing.Testing() with graceful fallback: if K8sIOClientGoModVersion fails (e.g. in test builds without module build info), return stable default capabilities instead of importing the testing package. Fixes #32047 --- pkg/chart/common/capabilities.go | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/pkg/chart/common/capabilities.go b/pkg/chart/common/capabilities.go index 16910acaa..dd5beeebe 100644 --- a/pkg/chart/common/capabilities.go +++ b/pkg/chart/common/capabilities.go @@ -20,7 +20,6 @@ import ( "slices" "strconv" "strings" - "testing" "github.com/Masterminds/semver/v3" "k8s.io/client-go/kubernetes/scheme" @@ -41,16 +40,18 @@ var ( // DefaultVersionSet is the default version set, which includes only Core V1 ("v1"). DefaultVersionSet = allKnownVersions() - DefaultCapabilities = func() *Capabilities { - caps, err := makeDefaultCapabilities() - if err != nil { - panic(fmt.Sprintf("failed to create default capabilities: %v", err)) - } - return caps - - }() + // DefaultCapabilities is initialized during init(). + DefaultCapabilities *Capabilities ) +func init() { + var err error + DefaultCapabilities, err = makeDefaultCapabilities() + if err != nil { + panic(fmt.Sprintf("failed to create default capabilities: %v", err)) + } +} + // Capabilities describes the capabilities of the Kubernetes cluster. type Capabilities struct { // KubeVersion is the Kubernetes version. @@ -143,16 +144,11 @@ func allKnownVersions() VersionSet { } func makeDefaultCapabilities() (*Capabilities, error) { - // Test builds don't include debug info / module info - // (And even if they did, we probably want stable capabilities for tests anyway) - // Return a default value for test builds - if testing.Testing() { - return newCapabilities(kubeVersionMajorTesting, kubeVersionMinorTesting) - } - vstr, err := helmversion.K8sIOClientGoModVersion() if err != nil { - return nil, fmt.Errorf("failed to retrieve k8s.io/client-go version: %w", err) + // Test builds and environments without k8s.io/client-go build info + // fall back to a stable default version. + return newCapabilities(kubeVersionMajorTesting, kubeVersionMinorTesting) } v, err := semver.NewVersion(vstr)