diff --git a/cmd/kubeadm/app/apis/kubeadm/BUILD b/cmd/kubeadm/app/apis/kubeadm/BUILD index 16d8572942d..00b82e139ff 100644 --- a/cmd/kubeadm/app/apis/kubeadm/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/BUILD @@ -5,6 +5,7 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( @@ -40,3 +41,18 @@ filegroup( ], tags = ["automanaged"], ) + +go_test( + name = "go_default_xtest", + srcs = ["serialization_test.go"], + tags = ["automanaged"], + deps = [ + "//cmd/kubeadm/app/apis/kubeadm/install:go_default_library", + "//pkg/api/testing:go_default_library", + "//vendor:k8s.io/apimachinery/pkg/api/testing", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/announced", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/registered", + "//vendor:k8s.io/apimachinery/pkg/runtime", + "//vendor:k8s.io/apimachinery/pkg/runtime/serializer", + ], +) diff --git a/cmd/kubeadm/app/apis/kubeadm/serialization_test.go b/cmd/kubeadm/app/apis/kubeadm/serialization_test.go new file mode 100644 index 00000000000..966ee47ada0 --- /dev/null +++ b/cmd/kubeadm/app/apis/kubeadm/serialization_test.go @@ -0,0 +1,48 @@ +/* +Copyright 2016 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 kubeadm_test + +import ( + "math/rand" + "testing" + + apitesting "k8s.io/apimachinery/pkg/api/testing" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install" + kapitesting "k8s.io/kubernetes/pkg/api/testing" +) + +const ( + seed = 1 +) + +func TestRoundTripTypes(t *testing.T) { + + groupFactoryRegistry := make(announced.APIGroupFactoryRegistry) + registry := registered.NewOrDie("") + scheme := runtime.NewScheme() + codecs := serializer.NewCodecFactory(scheme) + + install.Install(groupFactoryRegistry, registry, scheme) + // TODO: once we've pulled kubeadm types of the main scheme, we should + // move the fuzzers funcs here + fuzzer := apitesting.FuzzerFor(kapitesting.FuzzerFuncs(t, codecs), rand.NewSource(seed)) + apitesting.RoundTripTypesWithoutProtobuf(t, scheme, codecs, fuzzer, nil) +} diff --git a/hack/.linted_packages b/hack/.linted_packages index dec1eab79e5..c6c824a45d4 100644 --- a/hack/.linted_packages +++ b/hack/.linted_packages @@ -26,6 +26,7 @@ cmd/kube-controller-manager/app/options cmd/kube-discovery cmd/kube-proxy cmd/kubeadm +cmd/kubeadm/app/apis/kubeadm cmd/kubeadm/app/apis/kubeadm/install cmd/kubeadm/app/phases/apiconfig cmd/kubeadm/app/phases/certs diff --git a/pkg/api/testapi/BUILD b/pkg/api/testapi/BUILD index 24e2d854504..101b254c101 100644 --- a/pkg/api/testapi/BUILD +++ b/pkg/api/testapi/BUILD @@ -13,8 +13,6 @@ go_library( srcs = ["testapi.go"], tags = ["automanaged"], deps = [ - "//cmd/kubeadm/app/apis/kubeadm:go_default_library", - "//cmd/kubeadm/app/apis/kubeadm/install:go_default_library", "//federation/apis/federation:go_default_library", "//federation/apis/federation/install:go_default_library", "//pkg/api:go_default_library", diff --git a/pkg/api/testapi/testapi.go b/pkg/api/testapi/testapi.go index 6abbd527a70..c567f09f170 100644 --- a/pkg/api/testapi/testapi.go +++ b/pkg/api/testapi/testapi.go @@ -34,7 +34,6 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer/recognizer" - "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/federation/apis/federation" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" @@ -48,7 +47,6 @@ import ( "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/storage" - _ "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install" _ "k8s.io/kubernetes/federation/apis/federation/install" _ "k8s.io/kubernetes/pkg/api/install" _ "k8s.io/kubernetes/pkg/apis/apps/install" @@ -268,15 +266,6 @@ func init() { externalTypes: api.Scheme.KnownTypes(externalGroupVersion), } } - if _, ok := Groups[kubeadm.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: kubeadm.GroupName, Version: api.Registry.GroupOrDie(kubeadm.GroupName).GroupVersion.Version} - Groups[kubeadm.GroupName] = TestGroup{ - externalGroupVersion: externalGroupVersion, - internalGroupVersion: kubeadm.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(kubeadm.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), - } - } Default = Groups[api.GroupName] Autoscaling = Groups[autoscaling.GroupName]