pull/32337/merge
niteagent 2 months ago committed by GitHub
commit 431f7b41d0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -20,7 +20,6 @@ import (
"slices" "slices"
"strconv" "strconv"
"strings" "strings"
"testing"
"github.com/Masterminds/semver/v3" "github.com/Masterminds/semver/v3"
"k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/kubernetes/scheme"
@ -41,15 +40,17 @@ var (
// DefaultVersionSet is the default version set, which includes only Core V1 ("v1"). // DefaultVersionSet is the default version set, which includes only Core V1 ("v1").
DefaultVersionSet = allKnownVersions() DefaultVersionSet = allKnownVersions()
DefaultCapabilities = func() *Capabilities { // DefaultCapabilities is initialized during init().
caps, err := makeDefaultCapabilities() DefaultCapabilities *Capabilities
)
func init() {
var err error
DefaultCapabilities, err = makeDefaultCapabilities()
if err != nil { if err != nil {
panic(fmt.Sprintf("failed to create default capabilities: %v", err)) panic(fmt.Sprintf("failed to create default capabilities: %v", err))
} }
return caps }
}()
)
// Capabilities describes the capabilities of the Kubernetes cluster. // Capabilities describes the capabilities of the Kubernetes cluster.
type Capabilities struct { type Capabilities struct {
@ -143,16 +144,11 @@ func allKnownVersions() VersionSet {
} }
func makeDefaultCapabilities() (*Capabilities, error) { 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() vstr, err := helmversion.K8sIOClientGoModVersion()
if err != nil { 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) v, err := semver.NewVersion(vstr)

Loading…
Cancel
Save