mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 04:06:03 +00:00
uses a more resilient way to get branch name from version
This commit is contained in:
parent
1b950d1e8e
commit
bde4fdf258
@ -25,7 +25,7 @@ import (
|
|||||||
"k8s.io/kubernetes/cmd/kubeadm/app/features"
|
"k8s.io/kubernetes/cmd/kubeadm/app/features"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns"
|
"k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns"
|
||||||
etcdutil "k8s.io/kubernetes/cmd/kubeadm/app/util/etcd"
|
etcdutil "k8s.io/kubernetes/cmd/kubeadm/app/util/etcd"
|
||||||
"k8s.io/kubernetes/pkg/util/version"
|
versionutil "k8s.io/kubernetes/pkg/util/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Upgrade defines an upgrade possibility to upgrade from a current version to a new one
|
// Upgrade defines an upgrade possibility to upgrade from a current version to a new one
|
||||||
@ -279,22 +279,23 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getBranchFromVersion(version string) string {
|
func getBranchFromVersion(version string) string {
|
||||||
return strings.TrimPrefix(version, "v")[:4]
|
v := versionutil.MustParseGeneric(version)
|
||||||
|
return fmt.Sprintf("%d.%d", v.Major(), v.Minor())
|
||||||
}
|
}
|
||||||
|
|
||||||
func patchVersionBranchExists(clusterVersion, stableVersion *version.Version) bool {
|
func patchVersionBranchExists(clusterVersion, stableVersion *versionutil.Version) bool {
|
||||||
return stableVersion.AtLeast(clusterVersion)
|
return stableVersion.AtLeast(clusterVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
func patchUpgradePossible(clusterVersion, patchVersion *version.Version) bool {
|
func patchUpgradePossible(clusterVersion, patchVersion *versionutil.Version) bool {
|
||||||
return clusterVersion.LessThan(patchVersion)
|
return clusterVersion.LessThan(patchVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
func rcUpgradePossible(clusterVersion, previousBranchLatestVersion *version.Version) bool {
|
func rcUpgradePossible(clusterVersion, previousBranchLatestVersion *versionutil.Version) bool {
|
||||||
return strings.HasPrefix(previousBranchLatestVersion.PreRelease(), "rc") && clusterVersion.LessThan(previousBranchLatestVersion)
|
return strings.HasPrefix(previousBranchLatestVersion.PreRelease(), "rc") && clusterVersion.LessThan(previousBranchLatestVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
func minorUpgradePossibleWithPatchRelease(stableVersion, patchVersion *version.Version) bool {
|
func minorUpgradePossibleWithPatchRelease(stableVersion, patchVersion *versionutil.Version) bool {
|
||||||
return patchVersion.LessThan(stableVersion)
|
return patchVersion.LessThan(stableVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -826,3 +826,56 @@ func TestKubeletUpgrade(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetBranchFromVersion(t *testing.T) {
|
||||||
|
testCases := []struct {
|
||||||
|
version string
|
||||||
|
expectedVersion string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
version: "v1.9.5",
|
||||||
|
expectedVersion: "1.9",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: "v1.9.0-alpha.2",
|
||||||
|
expectedVersion: "1.9",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: "v1.9.0-beta.0",
|
||||||
|
expectedVersion: "1.9",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: "v1.9.0-rc.1",
|
||||||
|
expectedVersion: "1.9",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: "v1.12.5",
|
||||||
|
expectedVersion: "1.12",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: "v1.11.0-alpha.0",
|
||||||
|
expectedVersion: "1.11",
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
version: "v1.11.0-beta.1",
|
||||||
|
expectedVersion: "1.11",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: "v1.11.0-rc.0",
|
||||||
|
expectedVersion: "1.11",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: "1.12.5",
|
||||||
|
expectedVersion: "1.12",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tc := range testCases {
|
||||||
|
v := getBranchFromVersion(tc.version)
|
||||||
|
if v != tc.expectedVersion {
|
||||||
|
t.Errorf("expected version %s, got %s", tc.expectedVersion, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user