fix: rename fallback constants and log warning on BuildInfo failure

Rename kubeVersionMajorTesting/MinorTesting to kubeVersionMajorDefault/
MinorDefault to reflect their use as general fallback values, not just
for testing. Log a warning when falling back to the default Kubernetes
version so the behavior is diagnosable.

Signed-off-by: Terry Howe <terrylhowe@gmail.com>
pull/31912/head
Terry Howe 2 weeks ago
parent 6e445ec679
commit 5220dd2d0b
No known key found for this signature in database

@ -17,6 +17,7 @@ package common
import (
"fmt"
"log/slog"
"slices"
"strconv"
"strings"
@ -33,8 +34,8 @@ import (
)
const (
kubeVersionMajorTesting = 1
kubeVersionMinorTesting = 20
kubeVersionMajorDefault = 1
kubeVersionMinorDefault = 20
)
var (
@ -147,14 +148,15 @@ func makeDefaultCapabilities() (*Capabilities, error) {
// (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)
return newCapabilities(kubeVersionMajorDefault, kubeVersionMinorDefault)
}
vstr, err := helmversion.K8sIOClientGoModVersion()
if err != nil {
// Build info may be unavailable when compiled with toolchains other
// than "go build" (e.g. Bazel). Fall back to a safe default.
return newCapabilities(kubeVersionMajorTesting, kubeVersionMinorTesting)
slog.Warn("failed to retrieve k8s.io/client-go version, falling back to default Kubernetes version", slog.Any("error", err))
return newCapabilities(kubeVersionMajorDefault, kubeVersionMinorDefault)
}
v, err := semver.NewVersion(vstr)

Loading…
Cancel
Save