diff --git a/cmd/descheduler/app/options/options.go b/cmd/descheduler/app/options/options.go index ef6bbbebc..7adefe2ea 100644 --- a/cmd/descheduler/app/options/options.go +++ b/cmd/descheduler/app/options/options.go @@ -22,7 +22,6 @@ import ( // install the componentconfig api so we get its defaulting and conversion functions "sigs.k8s.io/descheduler/pkg/apis/componentconfig" - _ "sigs.k8s.io/descheduler/pkg/apis/componentconfig/install" "sigs.k8s.io/descheduler/pkg/apis/componentconfig/v1alpha1" deschedulerscheme "sigs.k8s.io/descheduler/pkg/descheduler/scheme" diff --git a/pkg/api/install/install.go b/pkg/api/install/install.go deleted file mode 100644 index 6ba419a5f..000000000 --- a/pkg/api/install/install.go +++ /dev/null @@ -1,48 +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 install installs the descheduler's policy API group. -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - - deschedulerapi "sigs.k8s.io/descheduler/pkg/api" - "sigs.k8s.io/descheduler/pkg/api/v1alpha1" - deschedulerscheme "sigs.k8s.io/descheduler/pkg/descheduler/scheme" -) - -func init() { - Install(deschedulerscheme.GroupFactoryRegistry, deschedulerscheme.Registry, deschedulerscheme.Scheme) -} - -// Install registers the API group and adds types to a scheme -func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { - if err := announced.NewGroupMetaFactory( - &announced.GroupMetaFactoryArgs{ - GroupName: deschedulerapi.GroupName, - VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: deschedulerapi.AddToScheme, - }, - announced.VersionToSchemeFunc{ - v1alpha1.SchemeGroupVersion.Version: v1alpha1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/api/register.go b/pkg/api/register.go index 11a544184..de1ff9613 100644 --- a/pkg/api/register.go +++ b/pkg/api/register.go @@ -19,11 +19,14 @@ package api import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + + "sigs.k8s.io/descheduler/pkg/descheduler/scheme" ) var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme + Scheme = runtime.NewScheme() ) // GroupName is the group name use in this package @@ -32,6 +35,12 @@ const GroupName = "descheduler" // SchemeGroupVersion is group version used to register these objects var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} +func init() { + if err := addKnownTypes(scheme.Scheme); err != nil { + panic(err) + } +} + // Kind takes an unqualified kind and returns a Group qualified GroupKind func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() diff --git a/pkg/apis/componentconfig/install/install.go b/pkg/apis/componentconfig/install/install.go deleted file mode 100644 index ecc5ce5f9..000000000 --- a/pkg/apis/componentconfig/install/install.go +++ /dev/null @@ -1,48 +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 install installs the descheduler's componentconfig API group. -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - - "sigs.k8s.io/descheduler/pkg/apis/componentconfig" - "sigs.k8s.io/descheduler/pkg/apis/componentconfig/v1alpha1" - deschedulerscheme "sigs.k8s.io/descheduler/pkg/descheduler/scheme" -) - -func init() { - Install(deschedulerscheme.GroupFactoryRegistry, deschedulerscheme.Registry, deschedulerscheme.Scheme) -} - -// Install registers the API group and adds types to a scheme -func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { - if err := announced.NewGroupMetaFactory( - &announced.GroupMetaFactoryArgs{ - GroupName: componentconfig.GroupName, - VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: componentconfig.AddToScheme, - }, - announced.VersionToSchemeFunc{ - v1alpha1.SchemeGroupVersion.Version: v1alpha1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/apis/componentconfig/register.go b/pkg/apis/componentconfig/register.go index b16d486b3..05d1a5903 100644 --- a/pkg/apis/componentconfig/register.go +++ b/pkg/apis/componentconfig/register.go @@ -19,6 +19,8 @@ package componentconfig import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + + "sigs.k8s.io/descheduler/pkg/descheduler/scheme" ) var ( @@ -32,6 +34,12 @@ const GroupName = "deschedulercomponentconfig" // SchemeGroupVersion is group version used to register these objects var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} +func init() { + if err := addKnownTypes(scheme.Scheme); err != nil { + panic(err) + } +} + // Kind takes an unqualified kind and returns a Group qualified GroupKind func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() diff --git a/pkg/descheduler/policyconfig.go b/pkg/descheduler/policyconfig.go index 209033b20..282b7bc78 100644 --- a/pkg/descheduler/policyconfig.go +++ b/pkg/descheduler/policyconfig.go @@ -24,7 +24,6 @@ import ( "github.com/golang/glog" "sigs.k8s.io/descheduler/pkg/api" - _ "sigs.k8s.io/descheduler/pkg/api/install" "sigs.k8s.io/descheduler/pkg/api/v1alpha1" "sigs.k8s.io/descheduler/pkg/descheduler/scheme" ) diff --git a/pkg/descheduler/scheme/scheme.go b/pkg/descheduler/scheme/scheme.go index 638f32cad..8997b49cd 100644 --- a/pkg/descheduler/scheme/scheme.go +++ b/pkg/descheduler/scheme/scheme.go @@ -17,17 +17,11 @@ limitations under the License. package scheme import ( - "os" - - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" ) var ( - GroupFactoryRegistry = make(announced.APIGroupFactoryRegistry) - Registry = registered.NewOrDie(os.Getenv("DESCHEDULER_API_VERSIONS")) Scheme = runtime.NewScheme() Codecs = serializer.NewCodecFactory(Scheme) )