diff --git a/federation/pkg/kubefed/BUILD b/federation/pkg/kubefed/BUILD index 023ee83ebca..17e4b23812f 100644 --- a/federation/pkg/kubefed/BUILD +++ b/federation/pkg/kubefed/BUILD @@ -19,7 +19,6 @@ go_library( "//federation/pkg/kubefed/init:go_default_library", "//federation/pkg/kubefed/util:go_default_library", "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -37,6 +36,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", diff --git a/federation/pkg/kubefed/join.go b/federation/pkg/kubefed/join.go index 35079e8a280..7f59f74fd8a 100644 --- a/federation/pkg/kubefed/join.go +++ b/federation/pkg/kubefed/join.go @@ -26,11 +26,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/storage/names" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/kubernetes/federation/apis/federation" "k8s.io/kubernetes/federation/pkg/kubefed/util" "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" extensions "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -183,7 +183,7 @@ func (j *joinFederation) Run(f cmdutil.Factory, cmdOut io.Writer, config util.Ad joiningClusterName := j.commonOptions.Name secretName := j.options.secretName if secretName == "" { - secretName = k8s_api_v1.SimpleNameGenerator.GenerateName(j.commonOptions.Name + "-") + secretName = names.SimpleNameGenerator.GenerateName(j.commonOptions.Name + "-") } joiningClusterFactory := j.joningClusterFactory(config) diff --git a/federation/test/e2e/BUILD b/federation/test/e2e/BUILD index 3a527f1155e..13ea12512c8 100644 --- a/federation/test/e2e/BUILD +++ b/federation/test/e2e/BUILD @@ -29,7 +29,6 @@ go_library( "//federation/pkg/federation-controller/util:go_default_library", "//federation/test/e2e/framework:go_default_library", "//federation/test/e2e/upgrades:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/cloudprovider:go_default_library", "//test/e2e/chaosmonkey:go_default_library", "//test/e2e/common:go_default_library", @@ -47,6 +46,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/rand:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", ], diff --git a/federation/test/e2e/namespace.go b/federation/test/e2e/namespace.go index de9aa81c18d..f92db2cf3af 100644 --- a/federation/test/e2e/namespace.go +++ b/federation/test/e2e/namespace.go @@ -26,9 +26,9 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/storage/names" clientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1" fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/test/e2e/framework" . "github.com/onsi/ginkgo" @@ -71,7 +71,7 @@ var _ = framework.KubeDescribe("Federation namespace [Feature:Federation]", func fedframework.SkipUnlessFederated(f.ClientSet) nsName = createNamespace(f.FederationClientset.Core().Namespaces()) - rsName := k8s_api_v1.SimpleNameGenerator.GenerateName(replicaSetNamePrefix) + rsName := names.SimpleNameGenerator.GenerateName(replicaSetNamePrefix) replicaCount := int32(2) rs := &v1beta1.ReplicaSet{ ObjectMeta: metav1.ObjectMeta{ @@ -123,7 +123,7 @@ var _ = framework.KubeDescribe("Federation namespace [Feature:Federation]", func // Create resources in the namespace. event := v1.Event{ ObjectMeta: metav1.ObjectMeta{ - Name: k8s_api_v1.SimpleNameGenerator.GenerateName(eventNamePrefix), + Name: names.SimpleNameGenerator.GenerateName(eventNamePrefix), Namespace: nsName, }, InvolvedObject: v1.ObjectReference{ @@ -199,7 +199,7 @@ func verifyNsCascadingDeletion(nsClient clientset.NamespaceInterface, clusters f func createNamespace(nsClient clientset.NamespaceInterface) string { ns := v1.Namespace{ ObjectMeta: metav1.ObjectMeta{ - Name: k8s_api_v1.SimpleNameGenerator.GenerateName(namespacePrefix), + Name: names.SimpleNameGenerator.GenerateName(namespacePrefix), }, } By(fmt.Sprintf("Creating namespace %s", ns.Name)) diff --git a/pkg/api/BUILD b/pkg/api/BUILD index 40261d53aec..780b758ea4f 100644 --- a/pkg/api/BUILD +++ b/pkg/api/BUILD @@ -39,50 +39,6 @@ go_test( library = ":go_default_library", ) -go_test( - name = "go_default_xtest", - srcs = [ - "conversion_test.go", - "copy_test.go", - "deep_copy_test.go", - "defaulting_test.go", - "meta_test.go", - "serialization_proto_test.go", - "serialization_test.go", - "unstructured_test.go", - ], - deps = [ - ":go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/api/testing:go_default_library", - "//pkg/api/v1:go_default_library", - "//pkg/apis/extensions:go_default_library", - "//pkg/apis/extensions/v1beta1:go_default_library", - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/golang/protobuf/proto:go_default_library", - "//vendor/github.com/google/gofuzz:go_default_library", - "//vendor/github.com/json-iterator/go:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/testing/fuzzer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion/unstructured:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - ], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/pkg/api/testing/BUILD b/pkg/api/testing/BUILD index 659e97210cd..ac7ce7e1c4f 100644 --- a/pkg/api/testing/BUILD +++ b/pkg/api/testing/BUILD @@ -3,12 +3,14 @@ package(default_visibility = ["//visibility:public"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( name = "go_default_library", srcs = [ "conversion.go", + "doc.go", "fuzzer.go", "pod_specs.go", ], @@ -54,3 +56,52 @@ filegroup( ], tags = ["automanaged"], ) + +go_test( + name = "go_default_test", + srcs = [ + "backward_compatibility_test.go", + "conversion_test.go", + "copy_test.go", + "deep_copy_test.go", + "defaulting_test.go", + "meta_test.go", + "serialization_proto_test.go", + "serialization_test.go", + "unstructured_test.go", + ], + library = ":go_default_library", + deps = [ + "//pkg/api:go_default_library", + "//pkg/api/install:go_default_library", + "//pkg/api/testapi:go_default_library", + "//pkg/api/testing/compat:go_default_library", + "//pkg/api/v1:go_default_library", + "//pkg/api/validation:go_default_library", + "//pkg/apis/extensions:go_default_library", + "//pkg/apis/extensions/v1beta1:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/github.com/json-iterator/go:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/testing/fuzzer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion/unstructured:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + ], +) diff --git a/pkg/api/v1/BUILD b/pkg/api/v1/BUILD index a80efb82f56..1ce0ff86c9d 100644 --- a/pkg/api/v1/BUILD +++ b/pkg/api/v1/BUILD @@ -12,7 +12,6 @@ go_library( "conversion.go", "defaults.go", "doc.go", - "generate.go", "register.go", "zz_generated.conversion.go", "zz_generated.defaults.go", @@ -30,7 +29,6 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/rand:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) @@ -38,16 +36,13 @@ go_library( go_test( name = "go_default_xtest", srcs = [ - "backward_compatibility_test.go", "conversion_test.go", "defaults_test.go", ], deps = [ ":go_default_library", "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", - "//pkg/api/testing/compat:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/testapi:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -55,7 +50,6 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) diff --git a/pkg/api/v1/generate.go b/pkg/api/v1/generate.go deleted file mode 100644 index 5ebe9a0e516..00000000000 --- a/pkg/api/v1/generate.go +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright 2014 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 v1 - -import ( - "fmt" - "k8s.io/api/core/v1" - - utilrand "k8s.io/apimachinery/pkg/util/rand" -) - -// NameGenerator generates names for objects. Some backends may have more information -// available to guide selection of new names and this interface hides those details. -type NameGenerator interface { - // GenerateName generates a valid name from the base name, adding a random suffix to the - // the base. If base is valid, the returned name must also be valid. The generator is - // responsible for knowing the maximum valid name length. - GenerateName(base string) string -} - -// GenerateName will resolve the object name of the provided v1.ObjectMeta to a generated version if -// necessary. It expects that validation for v1.ObjectMeta has already completed (that Base is a -// valid name) and that the NameGenerator generates a name that is also valid. -func GenerateName(u NameGenerator, meta *v1.ObjectMeta) { - if len(meta.GenerateName) == 0 || len(meta.Name) != 0 { - return - } - meta.Name = u.GenerateName(meta.GenerateName) -} - -// simpleNameGenerator generates random names. -type simpleNameGenerator struct{} - -// SimpleNameGenerator is a generator that returns the name plus a random suffix of five alphanumerics -// when a name is requested. The string is guaranteed to not exceed the length of a standard Kubernetes -// name (63 characters) -var SimpleNameGenerator NameGenerator = simpleNameGenerator{} - -const ( - // TODO: make this flexible for non-core resources with alternate naming rules. - maxNameLength = 63 - randomLength = 5 - maxGeneratedNameLength = maxNameLength - randomLength -) - -func (simpleNameGenerator) GenerateName(base string) string { - if len(base) > maxGeneratedNameLength { - base = base[:maxGeneratedNameLength] - } - return fmt.Sprintf("%s%s", base, utilrand.String(randomLength)) -} diff --git a/pkg/controller/deployment/util/BUILD b/pkg/controller/deployment/util/BUILD index 9df7ea4fedd..2f09e4b44e7 100644 --- a/pkg/controller/deployment/util/BUILD +++ b/pkg/controller/deployment/util/BUILD @@ -46,7 +46,6 @@ go_test( ], library = ":go_default_library", deps = [ - "//pkg/api/v1:go_default_library", "//pkg/controller:go_default_library", "//pkg/util/hash:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -56,6 +55,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", + "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", "//vendor/k8s.io/client-go/testing:go_default_library", ], diff --git a/pkg/controller/deployment/util/deployment_util_test.go b/pkg/controller/deployment/util/deployment_util_test.go index 28e609570e3..c8ce876df55 100644 --- a/pkg/controller/deployment/util/deployment_util_test.go +++ b/pkg/controller/deployment/util/deployment_util_test.go @@ -32,9 +32,9 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/apiserver/pkg/storage/names" "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" - apiv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/controller" ) @@ -88,7 +88,7 @@ func addUpdatePodsReactor(fakeClient *fake.Clientset) *fake.Clientset { func generateRSWithLabel(labels map[string]string, image string) extensions.ReplicaSet { return extensions.ReplicaSet{ ObjectMeta: metav1.ObjectMeta{ - Name: apiv1.SimpleNameGenerator.GenerateName("replicaset"), + Name: names.SimpleNameGenerator.GenerateName("replicaset"), Labels: labels, }, Spec: extensions.ReplicaSetSpec{ @@ -130,7 +130,7 @@ func generateRS(deployment extensions.Deployment) extensions.ReplicaSet { return extensions.ReplicaSet{ ObjectMeta: metav1.ObjectMeta{ UID: randomUID(), - Name: apiv1.SimpleNameGenerator.GenerateName("replicaset"), + Name: names.SimpleNameGenerator.GenerateName("replicaset"), Labels: template.Labels, OwnerReferences: []metav1.OwnerReference{*newDControllerRef(&deployment)}, },