allow ldflags to overwrite k8s version

Signed-off-by: Sverre Boschman <1142569+sboschman@users.noreply.github.com>
pull/10371/head
Sverre Boschman 4 years ago
parent d31261f47c
commit 4afbe10a0c

@ -29,8 +29,10 @@ import (
) )
var ( var (
k8sVersionMajor = 1 // This should be set in the Makefile based on the version of client-go being imported.
k8sVersionMinor = 20 // These constants will be overwritten with LDFLAGS (ldflags should be var and type string)
k8sVersionMajor = "1"
k8sVersionMinor = "20"
// 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()
@ -38,9 +40,9 @@ var (
// DefaultCapabilities is the default set of capabilities. // DefaultCapabilities is the default set of capabilities.
DefaultCapabilities = &Capabilities{ DefaultCapabilities = &Capabilities{
KubeVersion: KubeVersion{ KubeVersion: KubeVersion{
Version: fmt.Sprintf("v%d.%d.0", k8sVersionMajor, k8sVersionMinor), Version: fmt.Sprintf("v%s.%s.0", k8sVersionMajor, k8sVersionMinor),
Major: strconv.Itoa(k8sVersionMajor), Major: k8sVersionMajor,
Minor: strconv.Itoa(k8sVersionMinor), Minor: k8sVersionMinor,
}, },
APIVersions: DefaultVersionSet, APIVersions: DefaultVersionSet,
HelmVersion: helmversion.Get(), HelmVersion: helmversion.Get(),

@ -18,6 +18,7 @@ package rules // import "helm.sh/helm/v3/pkg/lint/rules"
import ( import (
"fmt" "fmt"
"strconv"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
@ -27,9 +28,9 @@ import (
var ( var (
// This should be set in the Makefile based on the version of client-go being imported. // This should be set in the Makefile based on the version of client-go being imported.
// These constants will be overwritten with LDFLAGS // These constants will be overwritten with LDFLAGS (ldflags should be var and type string)
k8sVersionMajor = 1 k8sVersionMajor = "1"
k8sVersionMinor = 20 k8sVersionMinor = "20"
) )
// deprecatedAPIError indicates than an API is deprecated in Kubernetes // deprecatedAPIError indicates than an API is deprecated in Kubernetes
@ -60,7 +61,9 @@ func validateNoDeprecations(resource *K8sYamlStruct) error {
} }
return err return err
} }
if !deprecation.IsDeprecated(runtimeObject, k8sVersionMajor, k8sVersionMinor) { currentVersionMajor, err := strconv.Atoi(k8sVersionMajor)
currentVersionMinor, err := strconv.Atoi(k8sVersionMinor)
if !deprecation.IsDeprecated(runtimeObject, currentVersionMajor, currentVersionMinor) {
return nil return nil
} }
gvk := fmt.Sprintf("%s %s", resource.APIVersion, resource.Kind) gvk := fmt.Sprintf("%s %s", resource.APIVersion, resource.Kind)

Loading…
Cancel
Save