mirror of
https://github.com/helm/helm.git
synced 2026-05-28 04:35:48 -04:00
Merge pull request #31091 from 8tomat8/dev-v3
fix: k8s version parsing to match original
This commit is contained in:
commit
ad28cfd058
2 changed files with 22 additions and 4 deletions
|
|
@ -19,11 +19,11 @@ import (
|
|||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"github.com/Masterminds/semver/v3"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
|
||||
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
||||
k8sversion "k8s.io/apimachinery/pkg/util/version"
|
||||
|
||||
helmversion "helm.sh/helm/v3/internal/version"
|
||||
)
|
||||
|
|
@ -84,14 +84,16 @@ func (kv *KubeVersion) GitVersion() string { return kv.Version }
|
|||
|
||||
// ParseKubeVersion parses kubernetes version from string
|
||||
func ParseKubeVersion(version string) (*KubeVersion, error) {
|
||||
sv, err := semver.NewVersion(version)
|
||||
// Based on the original k8s version parser.
|
||||
// https://github.com/kubernetes/kubernetes/blob/b266ac2c3e42c2c4843f81e20213d2b2f43e450a/staging/src/k8s.io/apimachinery/pkg/util/version/version.go#L137
|
||||
sv, err := k8sversion.ParseGeneric(version)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &KubeVersion{
|
||||
Version: "v" + sv.String(),
|
||||
Major: strconv.FormatUint(sv.Major(), 10),
|
||||
Minor: strconv.FormatUint(sv.Minor(), 10),
|
||||
Major: strconv.FormatUint(uint64(sv.Major()), 10),
|
||||
Minor: strconv.FormatUint(uint64(sv.Minor()), 10),
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -82,3 +82,19 @@ func TestParseKubeVersion(t *testing.T) {
|
|||
t.Errorf("Expected parsed KubeVersion.Minor to be 16, got %q", kv.Minor)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseKubeVersionSuffix(t *testing.T) {
|
||||
kv, err := ParseKubeVersion("v1.28+")
|
||||
if err != nil {
|
||||
t.Errorf("Expected v1.28+ to parse successfully")
|
||||
}
|
||||
if kv.Version != "v1.28" {
|
||||
t.Errorf("Expected parsed KubeVersion.Version to be v1.28, got %q", kv.String())
|
||||
}
|
||||
if kv.Major != "1" {
|
||||
t.Errorf("Expected parsed KubeVersion.Major to be 1, got %q", kv.Major)
|
||||
}
|
||||
if kv.Minor != "28" {
|
||||
t.Errorf("Expected parsed KubeVersion.Minor to be 28, got %q", kv.Minor)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue