Skip to content

Commit f772c90

Browse files
authored
Merge pull request kubernetes#86609 from Pensu/kubeadm-ci-master
Fixing regex for kubernetes version in kubeadm
2 parents a1364be + 49884bc commit f772c90

File tree

2 files changed

+12
-16
lines changed

2 files changed

+12
-16
lines changed

cmd/kubeadm/app/util/version.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ const (
4040
var (
4141
kubeReleaseBucketURL = "https://dl.k8s.io"
4242
kubeReleaseRegex = regexp.MustCompile(`^v?(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)([-0-9a-zA-Z_\.+]*)?$`)
43-
kubeReleaseLabelRegex = regexp.MustCompile(`^[[:lower:]]+(-[-\w_\.]+)?$`)
43+
kubeReleaseLabelRegex = regexp.MustCompile(`(k8s-master|((latest|stable)+(-[1-9](\.[1-9]([0-9])?)?)?))\z`)
4444
kubeBucketPrefixes = regexp.MustCompile(`^((release|ci|ci-cross)/)?([-\w_\.+]+)$`)
4545
)
4646

@@ -61,6 +61,7 @@ var (
6161
// latest (latest release, including alpha/beta)
6262
// latest-1 (latest release in 1.x, including alpha/beta)
6363
// latest-1.0 (and similarly 1.1, 1.2, 1.3, ...)
64+
// k8s-master (latest cross build)
6465
func KubernetesReleaseVersion(version string) (string, error) {
6566
return kubernetesReleaseVersion(version, fetchFromURL)
6667
}

cmd/kubeadm/app/util/version_test.go

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -116,14 +116,13 @@ func TestVersionFromNetwork(t *testing.T) {
116116
currentVersion := normalizedBuildVersion(constants.CurrentKubernetesVersion.String())
117117

118118
cases := map[string]T{
119-
"stable": {"stable-1", "v1.4.6", false, false}, // recursive pointer to stable-1
120-
"stable-1": {"v1.4.6", "v1.4.6", false, false},
121-
"stable-1.3": {"v1.3.10", "v1.3.10", false, false},
122-
"latest": {"v1.6.0-alpha.0", "v1.6.0-alpha.0", false, false},
123-
"latest-1.3": {"v1.3.11-beta.0", "v1.3.11-beta.0", false, false},
124-
"empty": {"", currentVersion, true, false},
125-
"garbage": {"<?xml version='1.0'?><Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message></Error>", currentVersion, true, false},
126-
"unknown": {"The requested URL was not found on this server.", currentVersion, true, false},
119+
"stable": {"stable-1", "v1.4.6", false, false}, // recursive pointer to stable-1
120+
"stable-1": {"v1.4.6", "v1.4.6", false, false},
121+
"stable-1.3": {"v1.3.10", "v1.3.10", false, false},
122+
"latest": {"v1.6.0-alpha.0", "v1.6.0-alpha.0", false, false},
123+
"latest-1.3": {"v1.3.11-beta.0", "v1.3.11-beta.0", false, false},
124+
"latest-1.5": {"", currentVersion, true, false}, // fallback to currentVersion on fetcher error
125+
"invalid-version": {"", "", false, true}, // invalid version cannot be parsed
127126
}
128127

129128
for k, v := range cases {
@@ -195,11 +194,10 @@ func TestSplitVersion(t *testing.T) {
195194
{"v1.8.0-alpha.2.1231+afabd012389d53a", "https://dl.k8s.io/release", "v1.8.0-alpha.2.1231+afabd012389d53a", true},
196195
{"release/v1.7.0", "https://dl.k8s.io/release", "v1.7.0", true},
197196
{"release/latest-1.7", "https://dl.k8s.io/release", "latest-1.7", true},
198-
// CI builds area, lookup actual builds at ci-cross/*.txt
197+
// CI builds area
199198
{"ci/latest", "https://dl.k8s.io/ci", "latest", true},
200-
{"ci-cross/latest", "https://dl.k8s.io/ci-cross", "latest", true},
199+
{"ci/k8s-master", "https://dl.k8s.io/ci", "k8s-master", true},
201200
{"ci/latest-1.7", "https://dl.k8s.io/ci", "latest-1.7", true},
202-
{"ci-cross/latest-1.7", "https://dl.k8s.io/ci-cross", "latest-1.7", true},
203201
// unknown label in default (release) area: splitVersion validate only areas.
204202
{"unknown-1", "https://dl.k8s.io/release", "unknown-1", true},
205203
// unknown area, not valid input.
@@ -238,9 +236,8 @@ func TestKubernetesIsCIVersion(t *testing.T) {
238236
{"release/v1.0.0", false},
239237
// CI builds
240238
{"ci/latest-1", true},
241-
{"ci-cross/latest", true},
239+
{"ci/k8s-master", true},
242240
{"ci/v1.9.0-alpha.1.123+acbcbfd53bfa0a", true},
243-
{"ci-cross/v1.9.0-alpha.1.123+acbcbfd53bfa0a", true},
244241
}
245242

246243
for _, tc := range cases {
@@ -269,9 +266,7 @@ func TestCIBuildVersion(t *testing.T) {
269266
{"release/0invalid", "", false},
270267
// CI or custom builds
271268
{"ci/v1.9.0-alpha.1.123+acbcbfd53bfa0a", "v1.9.0-alpha.1.123+acbcbfd53bfa0a", true},
272-
{"ci-cross/v1.9.0-alpha.1.123+acbcbfd53bfa0a", "v1.9.0-alpha.1.123+acbcbfd53bfa0a", true},
273269
{"ci/1.9.0-alpha.1.123+acbcbfd53bfa0a", "v1.9.0-alpha.1.123+acbcbfd53bfa0a", true},
274-
{"ci-cross/1.9.0-alpha.1.123+acbcbfd53bfa0a", "v1.9.0-alpha.1.123+acbcbfd53bfa0a", true},
275270
{"ci/0invalid", "", false},
276271
}
277272

0 commit comments

Comments
 (0)