Extend the k8s version discovery and constants to chartutil

Signed-off-by: Joe Julian <me@joejulian.name>
pull/8608/head
Joe Julian 5 years ago
parent 1d6c44d9d2
commit 4bad9232f9
No known key found for this signature in database
GPG Key ID: FAB12BE0575D999B

@ -55,9 +55,14 @@ LDFLAGS += -X helm.sh/helm/v3/internal/version.gitCommit=${GIT_COMMIT}
LDFLAGS += -X helm.sh/helm/v3/internal/version.gitTreeState=${GIT_DIRTY}
LDFLAGS += $(EXT_LDFLAGS)
# Define constants for the client-go version
LDFLAGS += -X helm.sh/helm/v3/pkg/lint/rules.k8sVersionMajor=$(shell awk '/client-go/{s=$$2;sub("^v","",s);split(s,v,".");print v[1]+1}' go.mod)
LDFLAGS += -X helm.sh/helm/v3/pkg/lint/rules.k8sVersionMinor=$(shell awk '/client-go/{s=$$2;sub("^v","",s);split(s,v,".");print v[2]}' go.mod)
# Define constants based on the client-go version
K8S_MODULES_MAJOR_VER=$(shell awk '/client-go/{s=$$2;sub("^v","",s);split(s,v,".");print v[1]+1}' go.mod)
K8S_MODULES_MINOR_VER=$(shell awk '/client-go/{s=$$2;sub("^v","",s);split(s,v,".");print v[2]}' go.mod)
LDFLAGS += -X helm.sh/helm/v3/pkg/lint/rules.k8sVersionMajor=$(K8S_MODULES_MAJOR_VER)
LDFLAGS += -X helm.sh/helm/v3/pkg/lint/rules.k8sVersionMinor=$(K8S_MODULES_MINOR_VER)
LDFLAGS += -X helm.sh/helm/v3/pkg/chartutil.k8sVersionMajor=$(K8S_MODULES_MAJOR_VER)
LDFLAGS += -X helm.sh/helm/v3/pkg/chartutil.k8sVersionMinor=$(K8S_MODULES_MINOR_VER)
.PHONY: all
all: build

@ -72,8 +72,8 @@ metadata:
helm.sh/chart: "subchart-0.1.0"
app.kubernetes.io/instance: "foobar-YWJj-baz"
kube-version/major: "1"
kube-version/minor: "18"
kube-version/version: "v1.18.0"
kube-version/minor: "19"
kube-version/version: "v1.19.0"
spec:
type: ClusterIP
ports:

@ -72,8 +72,8 @@ metadata:
helm.sh/chart: "subchart-0.1.0"
app.kubernetes.io/instance: "RELEASE-NAME"
kube-version/major: "1"
kube-version/minor: "18"
kube-version/version: "v1.18.0"
kube-version/minor: "19"
kube-version/version: "v1.19.0"
spec:
type: ClusterIP
ports:

@ -8,8 +8,8 @@ metadata:
helm.sh/chart: "subchart-0.1.0"
app.kubernetes.io/instance: "RELEASE-NAME"
kube-version/major: "1"
kube-version/minor: "18"
kube-version/version: "v1.18.0"
kube-version/minor: "19"
kube-version/version: "v1.19.0"
kube-api-version/test: v1
spec:
type: ClusterIP

@ -8,8 +8,8 @@ metadata:
helm.sh/chart: "subchart-0.1.0"
app.kubernetes.io/instance: "RELEASE-NAME"
kube-version/major: "1"
kube-version/minor: "18"
kube-version/version: "v1.18.0"
kube-version/minor: "19"
kube-version/version: "v1.19.0"
kube-api-version/test: v1
spec:
type: ClusterIP

@ -72,8 +72,8 @@ metadata:
helm.sh/chart: "subchart-0.1.0"
app.kubernetes.io/instance: "RELEASE-NAME"
kube-version/major: "1"
kube-version/minor: "18"
kube-version/version: "v1.18.0"
kube-version/minor: "19"
kube-version/version: "v1.19.0"
spec:
type: ClusterIP
ports:

@ -72,8 +72,8 @@ metadata:
helm.sh/chart: "subchart-0.1.0"
app.kubernetes.io/instance: "RELEASE-NAME"
kube-version/major: "1"
kube-version/minor: "18"
kube-version/version: "v1.18.0"
kube-version/minor: "19"
kube-version/version: "v1.19.0"
kube-api-version/test: v1
spec:
type: ClusterIP

@ -89,8 +89,8 @@ metadata:
helm.sh/chart: "subchart-0.1.0"
app.kubernetes.io/instance: "RELEASE-NAME"
kube-version/major: "1"
kube-version/minor: "18"
kube-version/version: "v1.18.0"
kube-version/minor: "19"
kube-version/version: "v1.19.0"
kube-api-version/test: v1
spec:
type: ClusterIP

@ -72,8 +72,8 @@ metadata:
helm.sh/chart: "subchart-0.1.0"
app.kubernetes.io/instance: "RELEASE-NAME"
kube-version/major: "1"
kube-version/minor: "18"
kube-version/version: "v1.18.0"
kube-version/minor: "19"
kube-version/version: "v1.19.0"
spec:
type: ClusterIP
ports:

@ -16,6 +16,9 @@ limitations under the License.
package chartutil
import (
"fmt"
"strconv"
"k8s.io/client-go/kubernetes/scheme"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
@ -24,6 +27,11 @@ import (
helmversion "helm.sh/helm/v3/internal/version"
)
const (
k8sMajorVer = 1
k8sMinorVer = 19
)
var (
// DefaultVersionSet is the default version set, which includes only Core V1 ("v1").
DefaultVersionSet = allKnownVersions()
@ -31,9 +39,9 @@ var (
// DefaultCapabilities is the default set of capabilities.
DefaultCapabilities = &Capabilities{
KubeVersion: KubeVersion{
Version: "v1.18.0",
Major: "1",
Minor: "18",
Version: fmt.Sprintf("v%d.%d.0", k8sMajorVer, k8sMinorVer),
Major: strconv.Itoa(k8sMajorVer),
Minor: strconv.Itoa(k8sMinorVer),
},
APIVersions: DefaultVersionSet,
HelmVersion: helmversion.Get(),

@ -42,20 +42,20 @@ func TestDefaultVersionSet(t *testing.T) {
func TestDefaultCapabilities(t *testing.T) {
kv := DefaultCapabilities.KubeVersion
if kv.String() != "v1.18.0" {
t.Errorf("Expected default KubeVersion.String() to be v1.18.0, got %q", kv.String())
if kv.String() != "v1.19.0" {
t.Errorf("Expected default KubeVersion.String() to be v1.19.0, got %q", kv.String())
}
if kv.Version != "v1.18.0" {
t.Errorf("Expected default KubeVersion.Version to be v1.18.0, got %q", kv.Version)
if kv.Version != "v1.19.0" {
t.Errorf("Expected default KubeVersion.Version to be v1.19.0, got %q", kv.Version)
}
if kv.GitVersion() != "v1.18.0" {
t.Errorf("Expected default KubeVersion.GitVersion() to be v1.18.0, got %q", kv.Version)
if kv.GitVersion() != "v1.19.0" {
t.Errorf("Expected default KubeVersion.GitVersion() to be v1.19.0, got %q", kv.Version)
}
if kv.Major != "1" {
t.Errorf("Expected default KubeVersion.Major to be 1, got %q", kv.Major)
}
if kv.Minor != "18" {
t.Errorf("Expected default KubeVersion.Minor to be 18, got %q", kv.Minor)
if kv.Minor != "19" {
t.Errorf("Expected default KubeVersion.Minor to be 19, got %q", kv.Minor)
}
}

Loading…
Cancel
Save