From f369372dad201d97b9a69bf2070e54f716077dc4 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Sat, 22 Oct 2016 12:49:18 -0400 Subject: [PATCH] Drop version-parsing from pkg/version pkg/version is now just version constants, etc, not version parsing --- pkg/apiserver/BUILD | 2 +- pkg/apiserver/apiserver.go | 6 +-- pkg/controller/node/BUILD | 2 +- pkg/controller/node/controller_utils.go | 10 ++--- pkg/controller/node/nodecontroller.go | 6 +-- pkg/registry/generic/registry/BUILD | 2 +- pkg/registry/generic/registry/store.go | 6 +-- pkg/version/BUILD | 14 ------- pkg/version/semver.go | 50 ------------------------- pkg/version/semver_test.go | 47 ----------------------- test/e2e/BUILD | 2 +- test/e2e/framework/BUILD | 3 +- test/e2e/framework/util.go | 29 +++++++------- test/e2e/kubectl.go | 16 ++++---- test/e2e/portforward.go | 4 +- test/e2e/service_accounts.go | 4 +- test/test_owners.csv | 1 - 17 files changed, 45 insertions(+), 159 deletions(-) delete mode 100644 pkg/version/semver.go delete mode 100644 pkg/version/semver_test.go diff --git a/pkg/apiserver/BUILD b/pkg/apiserver/BUILD index 946e4365ccd..133bc48f615 100644 --- a/pkg/apiserver/BUILD +++ b/pkg/apiserver/BUILD @@ -52,8 +52,8 @@ go_library( "//pkg/util/sets:go_default_library", "//pkg/util/strategicpatch:go_default_library", "//pkg/util/strings:go_default_library", + "//pkg/util/version:go_default_library", "//pkg/util/wsstream:go_default_library", - "//pkg/version:go_default_library", "//pkg/watch:go_default_library", "//pkg/watch/versioned:go_default_library", "//vendor:bitbucket.org/ww/goautoneg", diff --git a/pkg/apiserver/apiserver.go b/pkg/apiserver/apiserver.go index 5e5a16a56ec..d4c91d7d377 100644 --- a/pkg/apiserver/apiserver.go +++ b/pkg/apiserver/apiserver.go @@ -43,8 +43,8 @@ import ( "k8s.io/kubernetes/pkg/util/flushwriter" utilruntime "k8s.io/kubernetes/pkg/util/runtime" "k8s.io/kubernetes/pkg/util/sets" + utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/pkg/util/wsstream" - "k8s.io/kubernetes/pkg/version" "github.com/emicklei/go-restful" "github.com/golang/glog" @@ -358,11 +358,11 @@ func isOldKubectl(userAgent string) bool { if len(subs) != 2 { return false } - kubectlVersion, versionErr := version.Parse(subs[1]) + kubectlVersion, versionErr := utilversion.ParseSemantic(subs[1]) if versionErr != nil { return false } - return kubectlVersion.LT(version.MustParse("v1.5.0")) + return kubectlVersion.LessThan(utilversion.MustParseSemantic("v1.5.0")) } // TODO: Remove in 1.6. This is for backward compatibility with 1.4 kubectl. diff --git a/pkg/controller/node/BUILD b/pkg/controller/node/BUILD index 923ce9877df..a1cf79ac322 100644 --- a/pkg/controller/node/BUILD +++ b/pkg/controller/node/BUILD @@ -42,8 +42,8 @@ go_library( "//pkg/util/runtime:go_default_library", "//pkg/util/sets:go_default_library", "//pkg/util/system:go_default_library", + "//pkg/util/version:go_default_library", "//pkg/util/wait:go_default_library", - "//pkg/version:go_default_library", "//vendor:github.com/golang/glog", "//vendor:github.com/prometheus/client_golang/prometheus", ], diff --git a/pkg/controller/node/controller_utils.go b/pkg/controller/node/controller_utils.go index f69e2ddc91b..19d1a0c4f5c 100644 --- a/pkg/controller/node/controller_utils.go +++ b/pkg/controller/node/controller_utils.go @@ -33,7 +33,7 @@ import ( utilerrors "k8s.io/kubernetes/pkg/util/errors" "k8s.io/kubernetes/pkg/util/node" utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/version" + utilversion "k8s.io/kubernetes/pkg/util/version" "github.com/golang/glog" ) @@ -178,13 +178,13 @@ func (nc *NodeController) maybeDeleteTerminatingPod(obj interface{}) { // guarantee backwards compatibility of master API to kubelets with // versions less than 1.1.0 node := nodeObj.(*v1.Node) - v, err := version.Parse(node.Status.NodeInfo.KubeletVersion) + v, err := utilversion.ParseSemantic(node.Status.NodeInfo.KubeletVersion) if err != nil { glog.V(0).Infof("couldn't parse verions %q of minion: %v", node.Status.NodeInfo.KubeletVersion, err) utilruntime.HandleError(nc.forcefullyDeletePod(pod)) return } - if gracefulDeletionVersion.GT(v) { + if v.LessThan(gracefulDeletionVersion) { utilruntime.HandleError(nc.forcefullyDeletePod(pod)) return } @@ -239,12 +239,12 @@ func markAllPodsNotReady(kubeClient clientset.Interface, node *v1.Node) error { // Older versions were inflexible and modifying pod.Status directly through // the apiserver would result in unexpected outcomes. func nodeRunningOutdatedKubelet(node *v1.Node) bool { - v, err := version.Parse(node.Status.NodeInfo.KubeletVersion) + v, err := utilversion.ParseSemantic(node.Status.NodeInfo.KubeletVersion) if err != nil { glog.Errorf("couldn't parse version %q of node %v", node.Status.NodeInfo.KubeletVersion, err) return true } - if podStatusReconciliationVersion.GT(v) { + if v.LessThan(podStatusReconciliationVersion) { glog.Infof("Node %v running kubelet at (%v) which is less than the minimum version that allows nodecontroller to mark pods NotReady (%v).", node.Name, v, podStatusReconciliationVersion) return true } diff --git a/pkg/controller/node/nodecontroller.go b/pkg/controller/node/nodecontroller.go index cb961b96d44..e621a30b494 100644 --- a/pkg/controller/node/nodecontroller.go +++ b/pkg/controller/node/nodecontroller.go @@ -41,8 +41,8 @@ import ( utilnode "k8s.io/kubernetes/pkg/util/node" utilruntime "k8s.io/kubernetes/pkg/util/runtime" "k8s.io/kubernetes/pkg/util/system" + utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/version" ) func init() { @@ -52,11 +52,11 @@ func init() { var ( ErrCloudInstance = errors.New("cloud provider doesn't support instances.") - gracefulDeletionVersion = version.MustParse("v1.1.0") + gracefulDeletionVersion = utilversion.MustParseSemantic("v1.1.0") // The minimum kubelet version for which the nodecontroller // can safely flip pod.Status to NotReady. - podStatusReconciliationVersion = version.MustParse("v1.2.0") + podStatusReconciliationVersion = utilversion.MustParseSemantic("v1.2.0") ) const ( diff --git a/pkg/registry/generic/registry/BUILD b/pkg/registry/generic/registry/BUILD index bb99ba11556..ff1eee6104d 100644 --- a/pkg/registry/generic/registry/BUILD +++ b/pkg/registry/generic/registry/BUILD @@ -37,7 +37,7 @@ go_library( "//pkg/storage/storagebackend/factory:go_default_library", "//pkg/util/runtime:go_default_library", "//pkg/util/validation/field:go_default_library", - "//pkg/version:go_default_library", + "//pkg/util/version:go_default_library", "//pkg/watch:go_default_library", "//vendor:github.com/golang/glog", "//vendor:golang.org/x/net/context", diff --git a/pkg/registry/generic/registry/store.go b/pkg/registry/generic/registry/store.go index 89758e08252..4659fce7144 100644 --- a/pkg/registry/generic/registry/store.go +++ b/pkg/registry/generic/registry/store.go @@ -39,7 +39,7 @@ import ( "k8s.io/kubernetes/pkg/storage" utilruntime "k8s.io/kubernetes/pkg/util/runtime" "k8s.io/kubernetes/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/version" + utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/pkg/watch" "github.com/golang/glog" @@ -235,11 +235,11 @@ func isOldKubectl(userAgent string) bool { if len(subs) != 2 { return false } - kubectlVersion, versionErr := version.Parse(subs[1]) + kubectlVersion, versionErr := utilversion.ParseSemantic(subs[1]) if versionErr != nil { return false } - return kubectlVersion.LT(version.MustParse("v1.4.0")) + return kubectlVersion.LessThan(utilversion.MustParseSemantic("v1.4.0")) } // Create inserts a new item according to the unique key from the object. diff --git a/pkg/version/BUILD b/pkg/version/BUILD index e8620a9bc40..00751c2bff3 100644 --- a/pkg/version/BUILD +++ b/pkg/version/BUILD @@ -5,7 +5,6 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", - "go_test", ) go_library( @@ -13,20 +12,7 @@ go_library( srcs = [ "base.go", "doc.go", - "semver.go", "version.go", ], tags = ["automanaged"], - deps = [ - "//vendor:github.com/blang/semver", - "//vendor:github.com/golang/glog", - ], -) - -go_test( - name = "go_default_test", - srcs = ["semver_test.go"], - library = "go_default_library", - tags = ["automanaged"], - deps = [], ) diff --git a/pkg/version/semver.go b/pkg/version/semver.go deleted file mode 100644 index 1f4067e217b..00000000000 --- a/pkg/version/semver.go +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package version - -import ( - "strings" - "unicode" - - "github.com/blang/semver" - "github.com/golang/glog" -) - -func Parse(gitversion string) (semver.Version, error) { - // optionally trim leading spaces then one v - var seen bool - gitversion = strings.TrimLeftFunc(gitversion, func(ch rune) bool { - if seen { - return false - } - if ch == 'v' { - seen = true - return true - } - return unicode.IsSpace(ch) - }) - - return semver.Make(gitversion) -} - -func MustParse(gitversion string) semver.Version { - v, err := Parse(gitversion) - if err != nil { - glog.Fatalf("failed to parse semver from gitversion %q: %v", gitversion, err) - } - return v -} diff --git a/pkg/version/semver_test.go b/pkg/version/semver_test.go deleted file mode 100644 index 1b17e1758b3..00000000000 --- a/pkg/version/semver_test.go +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package version - -import "testing" - -func TestParseVersion(t *testing.T) { - cases := []struct { - version string - expectErr bool - }{ - {version: "v1.0.1-alpha"}, - {version: "v0.19.3"}, - {version: "0.19.3"}, - {version: "v1.2.0-alpha.3.1264+0655e65b435106-dirty"}, - {version: "1.2.0-alpha.3.1264+0655e65b435106-dirty"}, - {version: "1.2.0-alpha.3.1264+0655e65b435106-dirty"}, - {version: "1.0.0"}, - {version: "\t v1.0.0"}, - {version: "vv1.0.0", expectErr: true}, - {version: "blah1.0.0", expectErr: true}, - } - - for i, c := range cases { - _, err := Parse(c.version) - if err != nil && !c.expectErr { - t.Errorf("[%v]unexpected error: %v", i, err) - } - if err == nil && c.expectErr { - t.Errorf("[%v]expected error for %s", i, c.version) - } - } -} diff --git a/test/e2e/BUILD b/test/e2e/BUILD index 3c0fa552395..90dafd5616c 100644 --- a/test/e2e/BUILD +++ b/test/e2e/BUILD @@ -175,10 +175,10 @@ go_library( "//pkg/util/sets:go_default_library", "//pkg/util/system:go_default_library", "//pkg/util/uuid:go_default_library", + "//pkg/util/version:go_default_library", "//pkg/util/wait:go_default_library", "//pkg/util/workqueue:go_default_library", "//pkg/util/yaml:go_default_library", - "//pkg/version:go_default_library", "//pkg/volume/util/volumehelper:go_default_library", "//pkg/watch:go_default_library", "//plugin/pkg/admission/serviceaccount:go_default_library", diff --git a/test/e2e/framework/BUILD b/test/e2e/framework/BUILD index 88398d997aa..8e398625ad5 100644 --- a/test/e2e/framework/BUILD +++ b/test/e2e/framework/BUILD @@ -79,14 +79,13 @@ go_library( "//pkg/util/system:go_default_library", "//pkg/util/uuid:go_default_library", "//pkg/util/validation:go_default_library", + "//pkg/util/version:go_default_library", "//pkg/util/wait:go_default_library", - "//pkg/version:go_default_library", "//pkg/watch:go_default_library", "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", "//plugin/pkg/scheduler/schedulercache:go_default_library", "//test/e2e/perftype:go_default_library", "//test/utils:go_default_library", - "//vendor:github.com/blang/semver", "//vendor:github.com/golang/glog", "//vendor:github.com/google/cadvisor/info/v1", "//vendor:github.com/onsi/ginkgo", diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 7871cc95b38..f911193db34 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -40,7 +40,6 @@ import ( "text/tabwriter" "time" - "github.com/blang/semver" "github.com/golang/glog" "golang.org/x/crypto/ssh" "golang.org/x/net/websocket" @@ -86,8 +85,8 @@ import ( "k8s.io/kubernetes/pkg/util/sets" "k8s.io/kubernetes/pkg/util/system" "k8s.io/kubernetes/pkg/util/uuid" + utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/version" "k8s.io/kubernetes/pkg/watch" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" @@ -233,8 +232,8 @@ func GetPauseImageNameForHostArch() string { // // TODO(ihmccreery): remove once we don't care about v1.0 anymore, (tentatively // in v1.3). -var SubResourcePodProxyVersion = version.MustParse("v1.1.0") -var subResourceServiceAndNodeProxyVersion = version.MustParse("v1.2.0") +var SubResourcePodProxyVersion = utilversion.MustParseSemantic("v1.1.0") +var subResourceServiceAndNodeProxyVersion = utilversion.MustParseSemantic("v1.2.0") func GetServicesProxyRequest(c clientset.Interface, request *restclient.Request) (*restclient.Request, error) { subResourceProxyAvailable, err := ServerVersionGTE(subResourceServiceAndNodeProxyVersion, c.Discovery()) @@ -349,7 +348,7 @@ func NodeOSDistroIs(supportedNodeOsDistros ...string) bool { return false } -func SkipUnlessServerVersionGTE(v semver.Version, c discovery.ServerVersionInterface) { +func SkipUnlessServerVersionGTE(v *utilversion.Version, c discovery.ServerVersionInterface) { gte, err := ServerVersionGTE(v, c) if err != nil { Failf("Failed to get server version: %v", err) @@ -500,7 +499,7 @@ func WaitForPodsSuccess(c clientset.Interface, ns string, successPodLabels map[s return nil } -var ReadyReplicaVersion = version.MustParse("v1.4.0") +var ReadyReplicaVersion = utilversion.MustParseSemantic("v1.4.0") // WaitForPodsRunningReady waits up to timeout to ensure that all pods in // namespace ns are either running and ready, or failed but controlled by a @@ -1623,19 +1622,19 @@ func (r podProxyResponseChecker) CheckAllResponses() (done bool, err error) { // version. // // TODO(18726): This should be incorporated into client.VersionInterface. -func ServerVersionGTE(v semver.Version, c discovery.ServerVersionInterface) (bool, error) { +func ServerVersionGTE(v *utilversion.Version, c discovery.ServerVersionInterface) (bool, error) { serverVersion, err := c.ServerVersion() if err != nil { return false, fmt.Errorf("Unable to get server version: %v", err) } - sv, err := version.Parse(serverVersion.GitVersion) + sv, err := utilversion.ParseSemantic(serverVersion.GitVersion) if err != nil { return false, fmt.Errorf("Unable to parse server version %q: %v", serverVersion.GitVersion, err) } - return sv.GTE(v), nil + return sv.AtLeast(v), nil } -func SkipUnlessKubectlVersionGTE(v semver.Version) { +func SkipUnlessKubectlVersionGTE(v *utilversion.Version) { gte, err := KubectlVersionGTE(v) if err != nil { Failf("Failed to get kubectl version: %v", err) @@ -1647,25 +1646,25 @@ func SkipUnlessKubectlVersionGTE(v semver.Version) { // KubectlVersionGTE returns true if the kubectl version is greater than or // equal to v. -func KubectlVersionGTE(v semver.Version) (bool, error) { +func KubectlVersionGTE(v *utilversion.Version) (bool, error) { kv, err := KubectlVersion() if err != nil { return false, err } - return kv.GTE(v), nil + return kv.AtLeast(v), nil } // KubectlVersion gets the version of kubectl that's currently being used (see // --kubectl-path in e2e.go to use an alternate kubectl). -func KubectlVersion() (semver.Version, error) { +func KubectlVersion() (*utilversion.Version, error) { output := RunKubectlOrDie("version", "--client") matches := gitVersionRegexp.FindStringSubmatch(output) if len(matches) != 2 { - return semver.Version{}, fmt.Errorf("Could not find kubectl version in output %v", output) + return nil, fmt.Errorf("Could not find kubectl version in output %v", output) } // Don't use the full match, as it contains "GitVersion:\"" and a // trailing "\"". Just use the submatch. - return version.Parse(matches[1]) + return utilversion.ParseSemantic(matches[1]) } func PodsResponding(c clientset.Interface, ns, name string, wantName bool, pods *v1.PodList) error { diff --git a/test/e2e/kubectl.go b/test/e2e/kubectl.go index 3a91b65ae04..f318c646c70 100644 --- a/test/e2e/kubectl.go +++ b/test/e2e/kubectl.go @@ -54,8 +54,8 @@ import ( uexec "k8s.io/kubernetes/pkg/util/exec" utilnet "k8s.io/kubernetes/pkg/util/net" "k8s.io/kubernetes/pkg/util/uuid" + utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/version" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/generated" testutils "k8s.io/kubernetes/test/utils" @@ -101,39 +101,39 @@ var ( // that rely on extended pod logging options to work on clusters before that. // // TODO(ihmccreery): remove once we don't care about v1.0 anymore, (tentatively in v1.3). - extendedPodLogFilterVersion = version.MustParse("v1.1.0") + extendedPodLogFilterVersion = utilversion.MustParseSemantic("v1.1.0") // NodePorts were made optional in #12831 (v1.1.0) so we don't expect tests that used to // require NodePorts but no longer include them to work on clusters before that. // // TODO(ihmccreery): remove once we don't care about v1.0 anymore, (tentatively in v1.3). - nodePortsOptionalVersion = version.MustParse("v1.1.0") + nodePortsOptionalVersion = utilversion.MustParseSemantic("v1.1.0") // Jobs were introduced in v1.1, so we don't expect tests that rely on jobs to work on // clusters before that. // // TODO(ihmccreery): remove once we don't care about v1.0 anymore, (tentatively in v1.3). - jobsVersion = version.MustParse("v1.1.0") + jobsVersion = utilversion.MustParseSemantic("v1.1.0") // Deployments were introduced by default in v1.2, so we don't expect tests that rely on // deployments to work on clusters before that. // // TODO(ihmccreery): remove once we don't care about v1.1 anymore, (tentatively in v1.4). - deploymentsVersion = version.MustParse("v1.2.0-alpha.7.726") + deploymentsVersion = utilversion.MustParseSemantic("v1.2.0-alpha.7.726") // Pod probe parameters were introduced in #15967 (v1.2) so we don't expect tests that use // these probe parameters to work on clusters before that. // // TODO(ihmccreery): remove once we don't care about v1.1 anymore, (tentatively in v1.4). - podProbeParametersVersion = version.MustParse("v1.2.0-alpha.4") + podProbeParametersVersion = utilversion.MustParseSemantic("v1.2.0-alpha.4") // 'kubectl create quota' was introduced in #28351 (v1.4) so we don't expect tests that use // 'kubectl create quota' to work on kubectl clients before that. - kubectlCreateQuotaVersion = version.MustParse("v1.4.0-alpha.2") + kubectlCreateQuotaVersion = utilversion.MustParseSemantic("v1.4.0-alpha.2") // Returning container command exit codes in kubectl run/exec was introduced in #26541 (v1.4) // so we don't expect tests that verifies return code to work on kubectl clients before that. - kubectlContainerExitCodeVersion = version.MustParse("v1.4.0-alpha.3") + kubectlContainerExitCodeVersion = utilversion.MustParseSemantic("v1.4.0-alpha.3") ) // Stops everything from filePath from namespace ns and checks if everything matching selectors from the given namespace is correctly stopped. diff --git a/test/e2e/portforward.go b/test/e2e/portforward.go index abbf30627d8..f7c3e70e7f8 100644 --- a/test/e2e/portforward.go +++ b/test/e2e/portforward.go @@ -29,8 +29,8 @@ import ( "time" "k8s.io/kubernetes/pkg/api/v1" + utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/version" "k8s.io/kubernetes/test/e2e/framework" testutils "k8s.io/kubernetes/test/utils" @@ -44,7 +44,7 @@ const ( // TODO support other ports besides 80 var ( portForwardRegexp = regexp.MustCompile("Forwarding from 127.0.0.1:([0-9]+) -> 80") - portForwardPortToStdOutV = version.MustParse("v1.3.0-alpha.4") + portForwardPortToStdOutV = utilversion.MustParseSemantic("v1.3.0-alpha.4") ) func pfPod(expectedClientData, chunks, chunkSize, chunkIntervalMillis string) *v1.Pod { diff --git a/test/e2e/service_accounts.go b/test/e2e/service_accounts.go index 0be7cd54e8e..31a46399148 100644 --- a/test/e2e/service_accounts.go +++ b/test/e2e/service_accounts.go @@ -24,8 +24,8 @@ import ( "k8s.io/kubernetes/pkg/api/v1" metav1 "k8s.io/kubernetes/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/util/uuid" + utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/version" "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount" "k8s.io/kubernetes/test/e2e/framework" @@ -33,7 +33,7 @@ import ( . "github.com/onsi/gomega" ) -var serviceAccountTokenNamespaceVersion = version.MustParse("v1.2.0") +var serviceAccountTokenNamespaceVersion = utilversion.MustParseSemantic("v1.2.0") var _ = framework.KubeDescribe("ServiceAccounts", func() { f := framework.NewDefaultFramework("svcaccounts") diff --git a/test/test_owners.csv b/test/test_owners.csv index 68a387671e2..2345aa2afb4 100644 --- a/test/test_owners.csv +++ b/test/test_owners.csv @@ -877,7 +877,6 @@ k8s.io/kubernetes/pkg/util/wait,Q-Lee,1 k8s.io/kubernetes/pkg/util/workqueue,mtaufen,1 k8s.io/kubernetes/pkg/util/wsstream,timothysc,1 k8s.io/kubernetes/pkg/util/yaml,rmmh,1 -k8s.io/kubernetes/pkg/version,spxtr,1 k8s.io/kubernetes/pkg/volume,saad-ali,0 k8s.io/kubernetes/pkg/volume/aws_ebs,caesarxuchao,1 k8s.io/kubernetes/pkg/volume/azure_dd,bgrant0607,1