From e50340ee2381b4ae26dd0f95fdcd05cebfc15302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Thu, 9 Aug 2018 18:45:27 +0300 Subject: [PATCH] Remove references to 'pkg/apis/componentconfig/install' and fix inconsistencies --- api/api-rules/violation_exceptions.list | 79 +++++++++ hack/verify-api-groups.sh | 1 + pkg/api/testapi/testapi.go | 1 - pkg/api/testing/defaulting_test.go | 3 - pkg/api/testing/serialization_test.go | 6 +- pkg/apis/componentconfig/OWNERS | 59 ++----- pkg/apis/componentconfig/fuzzer/fuzzer.go | 3 + pkg/apis/componentconfig/install/install.go | 38 ----- pkg/apis/componentconfig/register.go | 24 +-- pkg/apis/componentconfig/v1alpha1/register.go | 2 - pkg/apis/componentconfig/v1alpha1/types.go | 161 +++++++++--------- .../internalclientset/scheme/register.go | 2 - .../scheme/register_custom.go | 27 --- pkg/master/import_known_versions.go | 1 - pkg/master/import_known_versions_test.go | 3 +- 15 files changed, 196 insertions(+), 214 deletions(-) delete mode 100644 pkg/apis/componentconfig/install/install.go delete mode 100644 pkg/client/clientset_generated/internalclientset/scheme/register_custom.go diff --git a/api/api-rules/violation_exceptions.list b/api/api-rules/violation_exceptions.list index 6f29555fed..35403d38e8 100644 --- a/api/api-rules/violation_exceptions.list +++ b/api/api-rules/violation_exceptions.list @@ -57,6 +57,11 @@ API rule violation: names_match,k8s.io/apimachinery/pkg/runtime,Unknown,ContentT API rule violation: names_match,k8s.io/apimachinery/pkg/util/intstr,IntOrString,Type API rule violation: names_match,k8s.io/apimachinery/pkg/util/intstr,IntOrString,IntVal API rule violation: names_match,k8s.io/apimachinery/pkg/util/intstr,IntOrString,StrVal +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,AttachDetachControllerConfiguration,DisableAttachDetachReconcilerSync +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,AttachDetachControllerConfiguration,ReconcilerSyncLoopPeriod +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CSRSigningControllerConfiguration,ClusterSigningCertFile +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CSRSigningControllerConfiguration,ClusterSigningKeyFile +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CSRSigningControllerConfiguration,ClusterSigningDuration API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,CloudProvider API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,Debugging API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,GenericComponent @@ -64,7 +69,45 @@ API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alp API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,ServiceController API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,NodeStatusUpdateFrequency API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudProviderConfiguration,Name +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudProviderConfiguration,CloudConfigFile +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DaemonSetControllerConfiguration,ConcurrentDaemonSetSyncs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DebuggingConfiguration,EnableProfiling +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DebuggingConfiguration,EnableContentionProfiling +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeploymentControllerConfiguration,ConcurrentDeploymentSyncs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeploymentControllerConfiguration,DeploymentControllerSyncPeriod +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeprecatedControllerConfiguration,DeletingPodsQps +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeprecatedControllerConfiguration,DeletingPodsBurst +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeprecatedControllerConfiguration,RegisterRetryCount +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,EndPointControllerConfiguration,ConcurrentEndpointSyncs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GarbageCollectorControllerConfiguration,EnableGarbageCollector +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GarbageCollectorControllerConfiguration,ConcurrentGCSyncs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GarbageCollectorControllerConfiguration,GCIgnoredResources +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericComponentConfiguration,MinResyncPeriod +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericComponentConfiguration,ContentType +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericComponentConfiguration,KubeAPIQPS +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericComponentConfiguration,KubeAPIBurst +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericComponentConfiguration,ControllerStartInterval +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericComponentConfiguration,LeaderElection +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GroupResource,Group +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GroupResource,Resource +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerSyncPeriod +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerUpscaleForbiddenWindow +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerDownscaleForbiddenWindow +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerTolerance +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerUseRESTClients API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,JobControllerConfiguration,ConcurrentJobSyncs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,Port +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,Address +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,UseServiceAccountCredentials +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,AllowUntaggedCloud +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,RouteReconciliationPeriod +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,NodeMonitorPeriod +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,ClusterName +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,ClusterCIDR +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,AllocateNodeCIDRs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,CIDRAllocatorType +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,ConfigureCloudRoutes +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,NodeSyncPeriod API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,CloudProvider API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,Debugging API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,GenericComponent @@ -88,6 +131,42 @@ API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alp API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,ResourceQuotaController API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,SAController API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,ServiceController +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,Controllers +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,ExternalCloudVolumePlugin +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NamespaceControllerConfiguration,NamespaceSyncPeriod +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NamespaceControllerConfiguration,ConcurrentNamespaceSyncs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeIpamControllerConfiguration,ServiceCIDR +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeIpamControllerConfiguration,NodeCIDRMaskSize +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,EnableTaintManager +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,NodeEvictionRate +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,SecondaryNodeEvictionRate +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,NodeStartupGracePeriod +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,NodeMonitorGracePeriod +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,PodEvictionTimeout +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,LargeClusterSizeThreshold +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,UnhealthyZoneThreshold +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeBinderControllerConfiguration,PVClaimBinderSyncPeriod +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeBinderControllerConfiguration,VolumeConfiguration +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,MaximumRetry +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,MinimumTimeoutNFS +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,PodTemplateFilePathNFS +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,IncrementTimeoutNFS +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,PodTemplateFilePathHostPath +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,MinimumTimeoutHostPath +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,IncrementTimeoutHostPath +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PodGCControllerConfiguration,TerminatedPodGCThreshold +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,ReplicaSetControllerConfiguration,ConcurrentRSSyncs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,ReplicationControllerConfiguration,ConcurrentRCSyncs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,ResourceQuotaControllerConfiguration,ResourceQuotaSyncPeriod +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,ResourceQuotaControllerConfiguration,ConcurrentResourceQuotaSyncs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,SAControllerConfiguration,ServiceAccountKeyFile +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,SAControllerConfiguration,ConcurrentSATokenSyncs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,SAControllerConfiguration,RootCAFile +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,ServiceControllerConfiguration,ConcurrentServiceSyncs +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,VolumeConfiguration,EnableHostPathProvisioning +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,VolumeConfiguration,EnableDynamicProvisioning +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,VolumeConfiguration,PersistentVolumeRecyclerConfiguration +API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,VolumeConfiguration,FlexVolumePluginDir API rule violation: names_match,k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1,KubeletConfiguration,ResolverConfig API rule violation: names_match,k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1,KubeletConfiguration,IPTablesMasqueradeBit API rule violation: names_match,k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1,KubeletConfiguration,IPTablesDropBit diff --git a/hack/verify-api-groups.sh b/hack/verify-api-groups.sh index 2756373011..f91805e0e6 100755 --- a/hack/verify-api-groups.sh +++ b/hack/verify-api-groups.sh @@ -94,6 +94,7 @@ done packages_without_install=( "k8s.io/kubernetes/pkg/apis/abac" "k8s.io/kubernetes/pkg/apis/admission" + "k8s.io/kubernetes/pkg/apis/componentconfig" # TODO: Remove this package completely and from this list ) known_version_files=( "pkg/master/import_known_versions.go" diff --git a/pkg/api/testapi/testapi.go b/pkg/api/testapi/testapi.go index 22eecad007..138d824131 100644 --- a/pkg/api/testapi/testapi.go +++ b/pkg/api/testapi/testapi.go @@ -61,7 +61,6 @@ import ( _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" _ "k8s.io/kubernetes/pkg/apis/batch/install" _ "k8s.io/kubernetes/pkg/apis/certificates/install" - _ "k8s.io/kubernetes/pkg/apis/componentconfig/install" _ "k8s.io/kubernetes/pkg/apis/coordination/install" _ "k8s.io/kubernetes/pkg/apis/core/install" _ "k8s.io/kubernetes/pkg/apis/events/install" diff --git a/pkg/api/testing/defaulting_test.go b/pkg/api/testing/defaulting_test.go index 48f02d29b0..58d9dc487c 100644 --- a/pkg/api/testing/defaulting_test.go +++ b/pkg/api/testing/defaulting_test.go @@ -88,9 +88,6 @@ func TestDefaulting(t *testing.T) { {Group: "batch", Version: "v2alpha1", Kind: "JobTemplate"}: {}, {Group: "certificates.k8s.io", Version: "v1beta1", Kind: "CertificateSigningRequest"}: {}, {Group: "certificates.k8s.io", Version: "v1beta1", Kind: "CertificateSigningRequestList"}: {}, - {Group: "componentconfig", Version: "v1alpha1", Kind: "KubeProxyConfiguration"}: {}, - {Group: "componentconfig", Version: "v1alpha1", Kind: "KubeSchedulerConfiguration"}: {}, - {Group: "componentconfig", Version: "v1alpha1", Kind: "KubeletConfiguration"}: {}, {Group: "kubeadm.k8s.io", Version: "v1alpha1", Kind: "MasterConfiguration"}: {}, // This object contains only int fields which currently breaks the defaulting test because // it's pretty stupid. Once we add non integer fields, we should uncomment this. diff --git a/pkg/api/testing/serialization_test.go b/pkg/api/testing/serialization_test.go index 446ffc74e1..e608916c70 100644 --- a/pkg/api/testing/serialization_test.go +++ b/pkg/api/testing/serialization_test.go @@ -205,11 +205,7 @@ func TestCommonKindsRegistered(t *testing.T) { func TestRoundTripTypes(t *testing.T) { seed := rand.Int63() fuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), legacyscheme.Codecs) - - nonRoundTrippableTypes := map[schema.GroupVersionKind]bool{ - {Group: "componentconfig", Version: runtime.APIVersionInternal, Kind: "KubeProxyConfiguration"}: true, - {Group: "componentconfig", Version: runtime.APIVersionInternal, Kind: "KubeSchedulerConfiguration"}: true, - } + nonRoundTrippableTypes := map[schema.GroupVersionKind]bool{} roundtrip.RoundTripTypes(t, legacyscheme.Scheme, legacyscheme.Codecs, fuzzer, nonRoundTrippableTypes) } diff --git a/pkg/apis/componentconfig/OWNERS b/pkg/apis/componentconfig/OWNERS index a1f5f1d9a4..c8204034c2 100755 --- a/pkg/apis/componentconfig/OWNERS +++ b/pkg/apis/componentconfig/OWNERS @@ -1,43 +1,18 @@ -reviewers: -- thockin -- lavalamp -- smarterclayton -- wojtek-t -- deads2k -- yujuhong -- derekwaynecarr -- caesarxuchao -- vishh -- mikedanese -- liggitt -- nikhiljindal -- gmarek -- sttts -- dchen1107 -- saad-ali -- luxas -- justinsb -- pwittrock -- ncdc -- yifan-gu -- mwielgus -- feiskyer -- dims -- errordeveloper -- mtaufen -- markturansky -- freehan -- mml -- ingvagabund -- cjcullen -- mbohlool -- jessfraz -- david-mcmahon -- therc -- '249043822' -- mqliang -- mfanjie approvers: - - mikedanese - - vishh - - mtaufen + - api-approvers + - mikedanese + - vishh + - mtaufen + - luxas + - sttts +reviewers: + - api-reviewers + - thockin + - lavalamp + - smarterclayton + - wojtek-t + - deads2k + - vishh + - mikedanese + - liggitt + - luxas diff --git a/pkg/apis/componentconfig/fuzzer/fuzzer.go b/pkg/apis/componentconfig/fuzzer/fuzzer.go index cfde7535a3..ad32458635 100644 --- a/pkg/apis/componentconfig/fuzzer/fuzzer.go +++ b/pkg/apis/componentconfig/fuzzer/fuzzer.go @@ -21,6 +21,9 @@ import ( ) // Funcs returns the fuzzer functions for the componentconfig api group. +// TODO: When the componentconfig types are split out to individual API groups +// we should re-enable the fuzzing and defaulting unit tests. Also add a +// TestTypeTags-kind of unit test like in `pkg/master` var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { return []interface{}{} } diff --git a/pkg/apis/componentconfig/install/install.go b/pkg/apis/componentconfig/install/install.go deleted file mode 100644 index 74ed50129b..0000000000 --- a/pkg/apis/componentconfig/install/install.go +++ /dev/null @@ -1,38 +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 install installs the experimental API group, making it available as -// an option to all of the API encoding/decoding machinery. -package install - -import ( - "k8s.io/apimachinery/pkg/runtime" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/api/legacyscheme" - "k8s.io/kubernetes/pkg/apis/componentconfig" - "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" -) - -func init() { - Install(legacyscheme.Scheme) -} - -// Install registers the API group and adds types to a scheme -func Install(scheme *runtime.Scheme) { - utilruntime.Must(componentconfig.AddToScheme(scheme)) - utilruntime.Must(v1alpha1.AddToScheme(scheme)) - utilruntime.Must(scheme.SetVersionPriority(v1alpha1.SchemeGroupVersion)) -} diff --git a/pkg/apis/componentconfig/register.go b/pkg/apis/componentconfig/register.go index 7ba52b1f68..5e9c8190f0 100644 --- a/pkg/apis/componentconfig/register.go +++ b/pkg/apis/componentconfig/register.go @@ -21,29 +21,31 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" ) -var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - AddToScheme = SchemeBuilder.AddToScheme -) - // GroupName is the group name use in this package const GroupName = "componentconfig" // SchemeGroupVersion is group version used to register these objects var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} +var ( + SchemeBuilder runtime.SchemeBuilder + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addKnownTypes) +} + // Kind takes an unqualified kind and returns a Group qualified GroupKind func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -// Resource takes an unqualified resource and returns a Group qualified GroupResource -func Resource(resource string) schema.GroupResource { - return SchemeGroupVersion.WithResource(resource).GroupResource() -} - func addKnownTypes(scheme *runtime.Scheme) error { - // TODO this will get cleaned up with the scheme types are fixed scheme.AddKnownTypes(SchemeGroupVersion, &KubeSchedulerConfiguration{}, ) diff --git a/pkg/apis/componentconfig/v1alpha1/register.go b/pkg/apis/componentconfig/v1alpha1/register.go index 693ff3a351..8d670694da 100644 --- a/pkg/apis/componentconfig/v1alpha1/register.go +++ b/pkg/apis/componentconfig/v1alpha1/register.go @@ -28,8 +28,6 @@ const GroupName = "componentconfig" var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} var ( - // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. - // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. SchemeBuilder runtime.SchemeBuilder localSchemeBuilder = &SchemeBuilder AddToScheme = localSchemeBuilder.AddToScheme diff --git a/pkg/apis/componentconfig/v1alpha1/types.go b/pkg/apis/componentconfig/v1alpha1/types.go index 5b9b9eb943..07c0236e02 100644 --- a/pkg/apis/componentconfig/v1alpha1/types.go +++ b/pkg/apis/componentconfig/v1alpha1/types.go @@ -21,6 +21,7 @@ import ( ) // ClientConnectionConfiguration contains details for constructing a client. +// TODO: This struct should be referenced from k8s.io/apimachinery/pkg/apis/config instead. type ClientConnectionConfiguration struct { // kubeconfig is the path to a KubeConfig file. Kubeconfig string `json:"kubeconfig"` @@ -152,28 +153,28 @@ type KubeSchedulerLeaderElectionConfiguration struct { type PersistentVolumeRecyclerConfiguration struct { // maximumRetry is number of retries the PV recycler will execute on failure to recycle // PV. - MaximumRetry int32 `json:"maximumRetry"` + MaximumRetry int32 // minimumTimeoutNFS is the minimum ActiveDeadlineSeconds to use for an NFS Recycler // pod. - MinimumTimeoutNFS int32 `json:"minimumTimeoutNFS"` + MinimumTimeoutNFS int32 // podTemplateFilePathNFS is the file path to a pod definition used as a template for // NFS persistent volume recycling - PodTemplateFilePathNFS string `json:"podTemplateFilePathNFS"` + PodTemplateFilePathNFS string // incrementTimeoutNFS is the increment of time added per Gi to ActiveDeadlineSeconds // for an NFS scrubber pod. - IncrementTimeoutNFS int32 `json:"incrementTimeoutNFS"` + IncrementTimeoutNFS int32 // podTemplateFilePathHostPath is the file path to a pod definition used as a template for // HostPath persistent volume recycling. This is for development and testing only and // will not work in a multi-node cluster. - PodTemplateFilePathHostPath string `json:"podTemplateFilePathHostPath"` + PodTemplateFilePathHostPath string // minimumTimeoutHostPath is the minimum ActiveDeadlineSeconds to use for a HostPath // Recycler pod. This is for development and testing only and will not work in a multi-node // cluster. - MinimumTimeoutHostPath int32 `json:"minimumTimeoutHostPath"` + MinimumTimeoutHostPath int32 // incrementTimeoutHostPath is the increment of time added per Gi to ActiveDeadlineSeconds // for a HostPath scrubber pod. This is for development and testing only and will not work // in a multi-node cluster. - IncrementTimeoutHostPath int32 `json:"incrementTimeoutHostPath"` + IncrementTimeoutHostPath int32 } // VolumeConfiguration contains *all* enumerated flags meant to configure all volume @@ -186,22 +187,22 @@ type VolumeConfiguration struct { // cloud provider. This allows testing and development of provisioning features. HostPath // provisioning is not supported in any way, won't work in a multi-node cluster, and // should not be used for anything other than testing or development. - EnableHostPathProvisioning *bool `json:"enableHostPathProvisioning"` + EnableHostPathProvisioning *bool // enableDynamicProvisioning enables the provisioning of volumes when running within an environment // that supports dynamic provisioning. Defaults to true. - EnableDynamicProvisioning *bool `json:"enableDynamicProvisioning"` + EnableDynamicProvisioning *bool // persistentVolumeRecyclerConfiguration holds configuration for persistent volume plugins. - PersistentVolumeRecyclerConfiguration PersistentVolumeRecyclerConfiguration `json:"persistentVolumeRecyclerConfiguration"` + PersistentVolumeRecyclerConfiguration PersistentVolumeRecyclerConfiguration // volumePluginDir is the full path of the directory in which the flex // volume plugin should search for additional third party volume plugins - FlexVolumePluginDir string `json:"flexVolumePluginDir"` + FlexVolumePluginDir string } type GroupResource struct { // group is the group portion of the GroupResource. - Group string `json:"group"` + Group string // resource is the resource portion of the GroupResource. - Resource string `json:"resource"` + Resource string } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -280,10 +281,10 @@ type KubeControllerManagerConfiguration struct { // 'foo' means "enable 'foo'" // '-foo' means "disable 'foo'" // first item for a particular name wins - Controllers []string `json:"controllers"` + Controllers []string // externalCloudVolumePlugin specifies the plugin to use when cloudProvider is "external". // It is currently used by the in repo cloud providers to handle node and volume control in the KCM. - ExternalCloudVolumePlugin string `json:"externalCloudVolumePlugin"` + ExternalCloudVolumePlugin string } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -310,152 +311,152 @@ type CloudControllerManagerConfiguration struct { type CloudProviderConfiguration struct { // Name is the provider for cloud services. - Name string `json:"cloudProvider"` + Name string // cloudConfigFile is the path to the cloud provider configuration file. - CloudConfigFile string `json:"cloudConfigFile"` + CloudConfigFile string } type DebuggingConfiguration struct { // enableProfiling enables profiling via web interface host:port/debug/pprof/ - EnableProfiling bool `json:"enableProfiling"` + EnableProfiling bool // EnableContentionProfiling enables lock contention profiling, if // EnableProfiling is true. - EnableContentionProfiling bool `json:"enableContentionProfiling"` + EnableContentionProfiling bool } type GenericComponentConfiguration struct { // minResyncPeriod is the resync period in reflectors; will be random between // minResyncPeriod and 2*minResyncPeriod. - MinResyncPeriod metav1.Duration `json:"minResyncPeriod"` + MinResyncPeriod metav1.Duration // contentType is contentType of requests sent to apiserver. - ContentType string `json:"contentType"` + ContentType string // kubeAPIQPS is the QPS to use while talking with kubernetes apiserver. - KubeAPIQPS float32 `json:"kubeAPIQPS"` + KubeAPIQPS float32 // kubeAPIBurst is the burst to use while talking with kubernetes apiserver. - KubeAPIBurst int32 `json:"kubeAPIBurst"` + KubeAPIBurst int32 // How long to wait between starting controller managers - ControllerStartInterval metav1.Duration `json:"controllerStartInterval"` + ControllerStartInterval metav1.Duration // leaderElection defines the configuration of leader election client. - LeaderElection LeaderElectionConfiguration `json:"leaderElection"` + LeaderElection LeaderElectionConfiguration } type KubeCloudSharedConfiguration struct { // port is the port that the controller-manager's http service runs on. - Port int32 `json:"port"` + Port int32 // address is the IP address to serve on (set to 0.0.0.0 for all interfaces). - Address string `json:"address"` + Address string // useServiceAccountCredentials indicates whether controllers should be run with // individual service account credentials. - UseServiceAccountCredentials bool `json:"useServiceAccountCredentials"` + UseServiceAccountCredentials bool // run with untagged cloud instances - AllowUntaggedCloud bool `json:"allowUntaggedCloud"` + AllowUntaggedCloud bool // routeReconciliationPeriod is the period for reconciling routes created for Nodes by cloud provider.. - RouteReconciliationPeriod metav1.Duration `json:"routeReconciliationPeriod"` + RouteReconciliationPeriod metav1.Duration // nodeMonitorPeriod is the period for syncing NodeStatus in NodeController. - NodeMonitorPeriod metav1.Duration `json:"nodeMonitorPeriod"` + NodeMonitorPeriod metav1.Duration // clusterName is the instance prefix for the cluster. - ClusterName string `json:"clusterName"` + ClusterName string // clusterCIDR is CIDR Range for Pods in cluster. - ClusterCIDR string `json:"clusterCIDR"` + ClusterCIDR string // AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if // ConfigureCloudRoutes is true, to be set on the cloud provider. - AllocateNodeCIDRs bool `json:"allocateNodeCIDRs"` + AllocateNodeCIDRs bool // CIDRAllocatorType determines what kind of pod CIDR allocator will be used. - CIDRAllocatorType string `json:"cIDRAllocatorType"` + CIDRAllocatorType string // configureCloudRoutes enables CIDRs allocated with allocateNodeCIDRs // to be configured on the cloud provider. - ConfigureCloudRoutes *bool `json:"configureCloudRoutes"` + ConfigureCloudRoutes *bool // nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer // periods will result in fewer calls to cloud provider, but may delay addition // of new nodes to cluster. - NodeSyncPeriod metav1.Duration `json:"nodeSyncPeriod"` + NodeSyncPeriod metav1.Duration } type AttachDetachControllerConfiguration struct { // Reconciler runs a periodic loop to reconcile the desired state of the with // the actual state of the world by triggering attach detach operations. // This flag enables or disables reconcile. Is false by default, and thus enabled. - DisableAttachDetachReconcilerSync bool `json:"disableAttachDetachReconcilerSync"` + DisableAttachDetachReconcilerSync bool // ReconcilerSyncLoopPeriod is the amount of time the reconciler sync states loop // wait between successive executions. Is set to 5 sec by default. - ReconcilerSyncLoopPeriod metav1.Duration `json:"reconcilerSyncLoopPeriod"` + ReconcilerSyncLoopPeriod metav1.Duration } type CSRSigningControllerConfiguration struct { // clusterSigningCertFile is the filename containing a PEM-encoded // X509 CA certificate used to issue cluster-scoped certificates - ClusterSigningCertFile string `json:"clusterSigningCertFile"` + ClusterSigningCertFile string // clusterSigningCertFile is the filename containing a PEM-encoded // RSA or ECDSA private key used to issue cluster-scoped certificates - ClusterSigningKeyFile string `json:"clusterSigningKeyFile"` + ClusterSigningKeyFile string // clusterSigningDuration is the length of duration signed certificates // will be given. - ClusterSigningDuration metav1.Duration `json:"clusterSigningDuration"` + ClusterSigningDuration metav1.Duration } type DaemonSetControllerConfiguration struct { // concurrentDaemonSetSyncs is the number of daemonset objects that are // allowed to sync concurrently. Larger number = more responsive daemonset, // but more CPU (and network) load. - ConcurrentDaemonSetSyncs int32 `json:"concurrentDaemonSetSyncs"` + ConcurrentDaemonSetSyncs int32 } type DeploymentControllerConfiguration struct { // concurrentDeploymentSyncs is the number of deployment objects that are // allowed to sync concurrently. Larger number = more responsive deployments, // but more CPU (and network) load. - ConcurrentDeploymentSyncs int32 `json:"concurrentDeploymentSyncs"` + ConcurrentDeploymentSyncs int32 // deploymentControllerSyncPeriod is the period for syncing the deployments. - DeploymentControllerSyncPeriod metav1.Duration `json:"deploymentControllerSyncPeriod"` + DeploymentControllerSyncPeriod metav1.Duration } type DeprecatedControllerConfiguration struct { // DEPRECATED: deletingPodsQps is the number of nodes per second on which pods are deleted in // case of node failure. - DeletingPodsQps float32 `json:"deletingPodsQps"` + DeletingPodsQps float32 // DEPRECATED: deletingPodsBurst is the number of nodes on which pods are bursty deleted in // case of node failure. For more details look into RateLimiter. - DeletingPodsBurst int32 `json:"deletingPodsBurst"` + DeletingPodsBurst int32 // registerRetryCount is the number of retries for initial node registration. // Retry interval equals node-sync-period. - RegisterRetryCount int32 `json:"registerRetryCount"` + RegisterRetryCount int32 } type EndPointControllerConfiguration struct { // concurrentEndpointSyncs is the number of endpoint syncing operations // that will be done concurrently. Larger number = faster endpoint updating, // but more CPU (and network) load. - ConcurrentEndpointSyncs int32 `json:"concurrentEndpointSyncs"` + ConcurrentEndpointSyncs int32 } type GarbageCollectorControllerConfiguration struct { // enables the generic garbage collector. MUST be synced with the // corresponding flag of the kube-apiserver. WARNING: the generic garbage // collector is an alpha feature. - EnableGarbageCollector *bool `json:"enableGarbageCollector"` + EnableGarbageCollector *bool // concurrentGCSyncs is the number of garbage collector workers that are // allowed to sync concurrently. - ConcurrentGCSyncs int32 `json:"concurrentGCSyncs"` + ConcurrentGCSyncs int32 // gcIgnoredResources is the list of GroupResources that garbage collection should ignore. - GCIgnoredResources []GroupResource `json:"gCIgnoredResources"` + GCIgnoredResources []GroupResource } type HPAControllerConfiguration struct { // horizontalPodAutoscalerSyncPeriod is the period for syncing the number of // pods in horizontal pod autoscaler. - HorizontalPodAutoscalerSyncPeriod metav1.Duration `json:"horizontalPodAutoscalerSyncPeriod"` + HorizontalPodAutoscalerSyncPeriod metav1.Duration // horizontalPodAutoscalerUpscaleForbiddenWindow is a period after which next upscale allowed. - HorizontalPodAutoscalerUpscaleForbiddenWindow metav1.Duration `json:"horizontalPodAutoscalerUpscaleForbiddenWindow"` + HorizontalPodAutoscalerUpscaleForbiddenWindow metav1.Duration // horizontalPodAutoscalerDownscaleForbiddenWindow is a period after which next downscale allowed. - HorizontalPodAutoscalerDownscaleForbiddenWindow metav1.Duration `json:"horizontalPodAutoscalerDownscaleForbiddenWindow"` + HorizontalPodAutoscalerDownscaleForbiddenWindow metav1.Duration // horizontalPodAutoscalerTolerance is the tolerance for when // resource usage suggests upscaling/downscaling - HorizontalPodAutoscalerTolerance float64 `json:"horizontalPodAutoscalerTolerance"` + HorizontalPodAutoscalerTolerance float64 // HorizontalPodAutoscalerUseRESTClients causes the HPA controller to use REST clients // through the kube-aggregator when enabled, instead of using the legacy metrics client // through the API server proxy. - HorizontalPodAutoscalerUseRESTClients *bool `json:"horizontalPodAutoscalerUseRESTClients"` + HorizontalPodAutoscalerUseRESTClients *bool } type JobControllerConfiguration struct { @@ -468,100 +469,100 @@ type JobControllerConfiguration struct { type NamespaceControllerConfiguration struct { // namespaceSyncPeriod is the period for syncing namespace life-cycle // updates. - NamespaceSyncPeriod metav1.Duration `json:"namespaceSyncPeriod"` + NamespaceSyncPeriod metav1.Duration // concurrentNamespaceSyncs is the number of namespace objects that are // allowed to sync concurrently. - ConcurrentNamespaceSyncs int32 `json:"concurrentNamespaceSyncs"` + ConcurrentNamespaceSyncs int32 } type NodeIpamControllerConfiguration struct { // serviceCIDR is CIDR Range for Services in cluster. - ServiceCIDR string `json:"serviceCIDR"` + ServiceCIDR string // NodeCIDRMaskSize is the mask size for node cidr in cluster. - NodeCIDRMaskSize int32 `json:"nodeCIDRMaskSize"` + NodeCIDRMaskSize int32 } type NodeLifecycleControllerConfiguration struct { // If set to true enables NoExecute Taints and will evict all not-tolerating // Pod running on Nodes tainted with this kind of Taints. - EnableTaintManager *bool `json:"enableTaintManager"` + EnableTaintManager *bool // nodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is healthy - NodeEvictionRate float32 `json:"nodeEvictionRate"` + NodeEvictionRate float32 // secondaryNodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is unhealthy - SecondaryNodeEvictionRate float32 `json:"secondaryNodeEvictionRate"` + SecondaryNodeEvictionRate float32 // nodeStartupGracePeriod is the amount of time which we allow starting a node to // be unresponsive before marking it unhealthy. - NodeStartupGracePeriod metav1.Duration `json:"nodeStartupGracePeriod"` + NodeStartupGracePeriod metav1.Duration // nodeMontiorGracePeriod is the amount of time which we allow a running node to be // unresponsive before marking it unhealthy. Must be N times more than kubelet's // nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet // to post node status. - NodeMonitorGracePeriod metav1.Duration `json:"nodeMonitorGracePeriod"` + NodeMonitorGracePeriod metav1.Duration // podEvictionTimeout is the grace period for deleting pods on failed nodes. - PodEvictionTimeout metav1.Duration `json:"podEvictionTimeout"` + PodEvictionTimeout metav1.Duration // secondaryNodeEvictionRate is implicitly overridden to 0 for clusters smaller than or equal to largeClusterSizeThreshold - LargeClusterSizeThreshold int32 `json:"largeClusterSizeThreshold"` + LargeClusterSizeThreshold int32 // Zone is treated as unhealthy in nodeEvictionRate and secondaryNodeEvictionRate when at least // unhealthyZoneThreshold (no less than 3) of Nodes in the zone are NotReady - UnhealthyZoneThreshold float32 `json:"unhealthyZoneThreshold"` + UnhealthyZoneThreshold float32 } type PersistentVolumeBinderControllerConfiguration struct { // pvClaimBinderSyncPeriod is the period for syncing persistent volumes // and persistent volume claims. - PVClaimBinderSyncPeriod metav1.Duration `json:"pVClaimBinderSyncPeriod"` + PVClaimBinderSyncPeriod metav1.Duration // volumeConfiguration holds configuration for volume related features. - VolumeConfiguration VolumeConfiguration `json:"volumeConfiguration"` + VolumeConfiguration VolumeConfiguration } type PodGCControllerConfiguration struct { // terminatedPodGCThreshold is the number of terminated pods that can exist // before the terminated pod garbage collector starts deleting terminated pods. // If <= 0, the terminated pod garbage collector is disabled. - TerminatedPodGCThreshold int32 `json:"terminatedPodGCThreshold"` + TerminatedPodGCThreshold int32 } type ReplicaSetControllerConfiguration struct { // concurrentRSSyncs is the number of replica sets that are allowed to sync // concurrently. Larger number = more responsive replica management, but more // CPU (and network) load. - ConcurrentRSSyncs int32 `json:"concurrentRSSyncs"` + ConcurrentRSSyncs int32 } type ReplicationControllerConfiguration struct { // concurrentRCSyncs is the number of replication controllers that are // allowed to sync concurrently. Larger number = more responsive replica // management, but more CPU (and network) load. - ConcurrentRCSyncs int32 `json:"concurrentRCSyncs"` + ConcurrentRCSyncs int32 } type ResourceQuotaControllerConfiguration struct { // resourceQuotaSyncPeriod is the period for syncing quota usage status // in the system. - ResourceQuotaSyncPeriod metav1.Duration `json:"resourceQuotaSyncPeriod"` + ResourceQuotaSyncPeriod metav1.Duration // concurrentResourceQuotaSyncs is the number of resource quotas that are // allowed to sync concurrently. Larger number = more responsive quota // management, but more CPU (and network) load. - ConcurrentResourceQuotaSyncs int32 `json:"concurrentResourceQuotaSyncs"` + ConcurrentResourceQuotaSyncs int32 } type SAControllerConfiguration struct { // serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key // used to sign service account tokens. - ServiceAccountKeyFile string `json:"serviceAccountKeyFile"` + ServiceAccountKeyFile string // concurrentSATokenSyncs is the number of service account token syncing operations // that will be done concurrently. - ConcurrentSATokenSyncs int32 `json:"concurrentSATokenSyncs"` + ConcurrentSATokenSyncs int32 // rootCAFile is the root certificate authority will be included in service // account's token secret. This must be a valid PEM-encoded CA bundle. - RootCAFile string `json:"rootCAFile"` + RootCAFile string } type ServiceControllerConfiguration struct { // concurrentServiceSyncs is the number of services that are // allowed to sync concurrently. Larger number = more responsive service // management, but more CPU (and network) load. - ConcurrentServiceSyncs int32 `json:"concurrentServiceSyncs"` + ConcurrentServiceSyncs int32 } const ( diff --git a/pkg/client/clientset_generated/internalclientset/scheme/register.go b/pkg/client/clientset_generated/internalclientset/scheme/register.go index 9b5420daa5..727d0e2995 100644 --- a/pkg/client/clientset_generated/internalclientset/scheme/register.go +++ b/pkg/client/clientset_generated/internalclientset/scheme/register.go @@ -70,6 +70,4 @@ func Install(scheme *runtime.Scheme) { scheduling.Install(scheme) settings.Install(scheme) storage.Install(scheme) - - ExtraInstall(scheme) } diff --git a/pkg/client/clientset_generated/internalclientset/scheme/register_custom.go b/pkg/client/clientset_generated/internalclientset/scheme/register_custom.go deleted file mode 100644 index d00f12b9b8..0000000000 --- a/pkg/client/clientset_generated/internalclientset/scheme/register_custom.go +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2017 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 scheme - -import ( - "k8s.io/apimachinery/pkg/runtime" - componentconfig "k8s.io/kubernetes/pkg/apis/componentconfig/install" -) - -func ExtraInstall(scheme *runtime.Scheme) { - // componentconfig is an apigroup, but we don't have an API endpoint because its objects are just embedded in ConfigMaps. - componentconfig.Install(scheme) -} diff --git a/pkg/master/import_known_versions.go b/pkg/master/import_known_versions.go index 1ed4eca31f..42477cc4b1 100644 --- a/pkg/master/import_known_versions.go +++ b/pkg/master/import_known_versions.go @@ -26,7 +26,6 @@ import ( _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" _ "k8s.io/kubernetes/pkg/apis/batch/install" _ "k8s.io/kubernetes/pkg/apis/certificates/install" - _ "k8s.io/kubernetes/pkg/apis/componentconfig/install" _ "k8s.io/kubernetes/pkg/apis/coordination/install" _ "k8s.io/kubernetes/pkg/apis/core/install" _ "k8s.io/kubernetes/pkg/apis/events/install" diff --git a/pkg/master/import_known_versions_test.go b/pkg/master/import_known_versions_test.go index c2aba14015..a0260656d0 100644 --- a/pkg/master/import_known_versions_test.go +++ b/pkg/master/import_known_versions_test.go @@ -39,13 +39,12 @@ func TestGroupVersions(t *testing.T) { "apps", "autoscaling", "batch", - "componentconfig", "extensions", "policy", ) // No new groups should be added to the legacyUnsuffixedGroups exclusion list - if len(legacyUnsuffixedGroups) != 7 { + if len(legacyUnsuffixedGroups) != 6 { t.Errorf("No additional unnamespaced groups should be created") }