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 += -X helm.sh/helm/v3/internal/version.gitTreeState=${GIT_DIRTY}
LDFLAGS += $(EXT_LDFLAGS) LDFLAGS += $(EXT_LDFLAGS)
# Define constants for the client-go version # Define constants based on 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) K8S_MODULES_MAJOR_VER=$(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) 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 .PHONY: all
all: build all: build

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

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

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

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

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

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

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

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

@ -16,6 +16,9 @@ limitations under the License.
package chartutil package chartutil
import ( import (
"fmt"
"strconv"
"k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/kubernetes/scheme"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
@ -24,6 +27,11 @@ import (
helmversion "helm.sh/helm/v3/internal/version" helmversion "helm.sh/helm/v3/internal/version"
) )
const (
k8sMajorVer = 1
k8sMinorVer = 19
)
var ( 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()
@ -31,9 +39,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: "v1.18.0", Version: fmt.Sprintf("v%d.%d.0", k8sMajorVer, k8sMinorVer),
Major: "1", Major: strconv.Itoa(k8sMajorVer),
Minor: "18", Minor: strconv.Itoa(k8sMinorVer),
}, },
APIVersions: DefaultVersionSet, APIVersions: DefaultVersionSet,
HelmVersion: helmversion.Get(), HelmVersion: helmversion.Get(),

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

Loading…
Cancel
Save