From 12f1bfb0565208984e926a7b3535b23bf5522536 Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Thu, 10 Aug 2017 13:29:19 +0200 Subject: [PATCH 1/4] UPSTREAM: 50094: apimachinery: remove pre-apigroups import path logic --- .../kubeadm/app/apis/kubeadm/install/install.go | 1 - .../federation/apis/core/install/install.go | 1 - .../federation/apis/federation/install/install.go | 1 - .../k8s.io/kubernetes/pkg/api/install/install.go | 1 - .../pkg/apis/admission/install/install.go | 1 - .../apis/admissionregistration/install/install.go | 1 - .../kubernetes/pkg/apis/apps/install/install.go | 1 - .../pkg/apis/authentication/install/install.go | 1 - .../pkg/apis/authorization/install/install.go | 1 - .../pkg/apis/autoscaling/install/install.go | 1 - .../kubernetes/pkg/apis/batch/install/install.go | 1 - .../pkg/apis/certificates/install/install.go | 1 - .../pkg/apis/componentconfig/install/install.go | 1 - .../pkg/apis/extensions/install/install.go | 1 - .../pkg/apis/imagepolicy/install/install.go | 1 - .../pkg/apis/networking/install/install.go | 1 - .../kubernetes/pkg/apis/policy/install/install.go | 1 - .../kubernetes/pkg/apis/rbac/install/install.go | 1 - .../pkg/apis/settings/install/install.go | 1 - .../kubernetes/pkg/apis/storage/install/install.go | 1 - .../podtolerationrestriction/install/install.go | 1 - .../apis/resourcequota/install/install.go | 1 - .../pkg/apis/apiextensions/install/install.go | 1 - .../k8s.io/apimachinery/pkg/api/meta/default.go | 11 +++-------- .../pkg/apimachinery/announced/announced_test.go | 2 -- .../pkg/apimachinery/announced/group_factory.go | 5 ----- .../pkg/apis/apiserver/install/install.go | 1 - .../apiserver/pkg/apis/audit/install/install.go | 1 - .../apiserver/pkg/apis/example/install/install.go | 1 - .../apiserver/pkg/server/genericapiserver_test.go | 2 +- .../k8s.io/client-go/pkg/api/install/install.go | 1 - .../client-go/pkg/apis/apps/install/install.go | 1 - .../pkg/apis/authentication/install/install.go | 1 - .../pkg/apis/authorization/install/install.go | 1 - .../pkg/apis/autoscaling/install/install.go | 1 - .../client-go/pkg/apis/batch/install/install.go | 1 - .../pkg/apis/certificates/install/install.go | 1 - .../pkg/apis/extensions/install/install.go | 1 - .../client-go/pkg/apis/policy/install/install.go | 1 - .../client-go/pkg/apis/rbac/install/install.go | 1 - .../client-go/pkg/apis/settings/install/install.go | 1 - .../client-go/pkg/apis/storage/install/install.go | 1 - .../pkg/apis/apiregistration/install/install.go | 1 - .../test_apis/testgroup/install/install.go | 1 - .../pkg/apis/custom_metrics/install/install.go | 1 - .../metrics/pkg/apis/metrics/install/install.go | 1 - .../pkg/apis/wardle/install/install.go | 1 - .../integration/etcd/etcd_storage_path_test.go | 14 +++++++------- 48 files changed, 11 insertions(+), 66 deletions(-) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/install.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/install.go index 4e26b00e13d7..81f0174a703d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/install.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/install.go @@ -35,7 +35,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: kubeadm.GroupName, VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm", AddInternalObjectsToScheme: kubeadm.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/federation/apis/core/install/install.go b/vendor/k8s.io/kubernetes/federation/apis/core/install/install.go index cde0a187b56d..ca250a4f4330 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/core/install/install.go +++ b/vendor/k8s.io/kubernetes/federation/apis/core/install/install.go @@ -35,7 +35,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: core.GroupName, VersionPreferenceOrder: []string{corev1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/federation/apis/core", AddInternalObjectsToScheme: core.AddToScheme, RootScopedKinds: sets.NewString( "Namespace", diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/install/install.go b/vendor/k8s.io/kubernetes/federation/apis/federation/install/install.go index d64bc269b9a2..a4ceffdb1401 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/install/install.go +++ b/vendor/k8s.io/kubernetes/federation/apis/federation/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: federation.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/federation/apis/federation", AddInternalObjectsToScheme: federation.AddToScheme, RootScopedKinds: sets.NewString( "Cluster", diff --git a/vendor/k8s.io/kubernetes/pkg/api/install/install.go b/vendor/k8s.io/kubernetes/pkg/api/install/install.go index 53730940ae82..cd3879ccb6ad 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/api/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: api.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/api", AddInternalObjectsToScheme: api.AddToScheme, RootScopedKinds: sets.NewString( "Node", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admission/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/admission/install/install.go index fca70e225e09..f0b0dcf79bdb 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admission/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admission/install/install.go @@ -38,7 +38,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: admission.GroupName, VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/admission", RootScopedKinds: sets.NewString("AdmissionReview"), AddInternalObjectsToScheme: admission.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/install.go index 28bc44c28a22..b2ff84b3e316 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r GroupName: admissionregistration.GroupName, RootScopedKinds: sets.NewString("InitializerConfiguration", "ExternalAdmissionHookConfiguration"), VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/admissionregistration", AddInternalObjectsToScheme: admissionregistration.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/install/install.go index 344ddcbf7e1b..7b8b8d2b5e2e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: apps.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/apps", AddInternalObjectsToScheme: apps.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/install.go index 2fa00ec6b199..9f1c4d647910 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/install.go @@ -39,7 +39,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: authentication.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/authentication", RootScopedKinds: sets.NewString("TokenReview"), AddInternalObjectsToScheme: authentication.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/install.go index 1b82992f640b..bb9d882cd9f3 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/install.go @@ -39,7 +39,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: authorization.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/authorization", RootScopedKinds: sets.NewString("SubjectAccessReview", "SelfSubjectAccessReview"), AddInternalObjectsToScheme: authorization.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/install.go index 3625e246c94f..8be609526c30 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/install.go @@ -38,7 +38,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: autoscaling.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v2alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/autoscaling", AddInternalObjectsToScheme: autoscaling.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/install/install.go index 21a3f03f8cea..7ac83cd5659f 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/install/install.go @@ -41,7 +41,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: batch.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v2alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/batch", AddInternalObjectsToScheme: batch.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/install.go index 73844eeb6ffd..34da4b93f3b0 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/install.go @@ -38,7 +38,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: certificates.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/certificates", RootScopedKinds: sets.NewString("CertificateSigningRequest"), AddInternalObjectsToScheme: certificates.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/install.go index 1d0c51914ce5..53b95f6a5315 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: componentconfig.GroupName, VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/componentconfig", AddInternalObjectsToScheme: componentconfig.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/install.go index 53f870dda2e0..7e8cc9c21692 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/install.go @@ -38,7 +38,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: extensions.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/extensions", RootScopedKinds: sets.NewString("PodSecurityPolicy", "ThirdPartyResource"), AddInternalObjectsToScheme: extensions.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/install.go index 2e8b28cbc4ee..cf03fd483c25 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/install.go @@ -38,7 +38,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: imagepolicy.GroupName, VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/imagepolicy", RootScopedKinds: sets.NewString("ImageReview"), AddInternalObjectsToScheme: imagepolicy.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/install/install.go index 1d118c768047..85c7991bcf00 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: networking.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/networking", AddInternalObjectsToScheme: networking.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/policy/install/install.go index 76129575ce95..cf133df6b6ba 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: policy.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/policy", AddInternalObjectsToScheme: policy.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/install.go index 36067ed14851..ee2d4705f969 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/install.go @@ -39,7 +39,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: rbac.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version, v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/rbac", RootScopedKinds: sets.NewString("ClusterRole", "ClusterRoleBinding"), AddInternalObjectsToScheme: rbac.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/settings/install/install.go index 105a78d8648c..fdaf7d2c37e5 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: settings.GroupName, VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/settings", AddInternalObjectsToScheme: settings.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/install/install.go index 7b09a34d2335..6c645feb634b 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/install/install.go @@ -39,7 +39,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: storage.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/pkg/apis/storage", RootScopedKinds: sets.NewString("StorageClass"), AddInternalObjectsToScheme: storage.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/install.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/install.go index 5af1c72e7ece..bc4336a43968 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/install.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/install.go @@ -32,7 +32,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: internalapi.GroupName, VersionPreferenceOrder: []string{versionedapi.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction", AddInternalObjectsToScheme: internalapi.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/install/install.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/install/install.go index 048d40749a49..aa28431ece76 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/install/install.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/install/install.go @@ -32,7 +32,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: resourcequotaapi.GroupName, VersionPreferenceOrder: []string{resourcequotav1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota", AddInternalObjectsToScheme: resourcequotaapi.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/install.go index 80157c8003b2..25cee84d2dcf 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/install.go @@ -32,7 +32,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r GroupName: apiextensions.GroupName, RootScopedKinds: sets.NewString("CustomResourceDefinition"), VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/apiextensions-apiserver/pkg/apis/apiextension", AddInternalObjectsToScheme: apiextensions.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/default.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/default.go index 5ea906a2a723..d5563da88375 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/default.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/default.go @@ -17,8 +17,6 @@ limitations under the License. package meta import ( - "strings" - "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" @@ -26,18 +24,15 @@ import ( // NewDefaultRESTMapperFromScheme instantiates a DefaultRESTMapper based on types registered in the given scheme. func NewDefaultRESTMapperFromScheme(defaultGroupVersions []schema.GroupVersion, interfacesFunc VersionInterfacesFunc, - importPathPrefix string, ignoredKinds, rootScoped sets.String, scheme *runtime.Scheme) *DefaultRESTMapper { + ignoredKinds, rootScoped sets.String, scheme *runtime.Scheme) *DefaultRESTMapper { mapper := NewDefaultRESTMapper(defaultGroupVersions, interfacesFunc) // enumerate all supported versions, get the kinds, and register with the mapper how to address // our resources. for _, gv := range defaultGroupVersions { - for kind, oType := range scheme.KnownTypes(gv) { + for kind := range scheme.KnownTypes(gv) { gvk := gv.WithKind(kind) - // TODO: Remove import path check. - // We check the import path because we currently stuff both "api" and "extensions" objects - // into the same group within Scheme since Scheme has no notion of groups yet. - if !strings.Contains(oType.PkgPath(), importPathPrefix) || ignoredKinds.Has(kind) { + if ignoredKinds.Has(kind) { continue } scope := RESTScopeNamespace diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/announced_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/announced_test.go index 9c2765bdb871..95882e5df55f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/announced_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/announced_test.go @@ -30,7 +30,6 @@ func TestFactoryRegistry(t *testing.T) { if err := regA.AnnounceGroup(&GroupMetaFactoryArgs{ GroupName: "foo", VersionPreferenceOrder: []string{"v2", "v1"}, - ImportPrefix: "pkg/apis/foo", RootScopedKinds: sets.NewString("namespaces"), }); err != nil { t.Fatalf("Unexpected error: %v", err) @@ -52,7 +51,6 @@ func TestFactoryRegistry(t *testing.T) { &GroupMetaFactoryArgs{ GroupName: "foo", VersionPreferenceOrder: []string{"v2", "v1"}, - ImportPrefix: "pkg/apis/foo", RootScopedKinds: sets.NewString("namespaces"), }, VersionToSchemeFunc{"v1": nil, "v2": nil}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go index c469eebcd236..5fd3e48bd5c7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go @@ -47,10 +47,6 @@ type GroupMetaFactoryArgs struct { // example: 'servicecatalog.k8s.io' GroupName string VersionPreferenceOrder []string - // ImportPrefix is the base go package of the API-Group - // - // example: 'k8s.io/kubernetes/pkg/apis/autoscaling' - ImportPrefix string // RootScopedKinds are resources that are not namespaced. RootScopedKinds sets.String // nil is allowed IgnoredKinds sets.String // nil is allowed @@ -179,7 +175,6 @@ func (gmf *GroupMetaFactory) newRESTMapper(scheme *runtime.Scheme, externalVersi return meta.NewDefaultRESTMapperFromScheme( externalVersions, groupMeta.InterfacesFor, - gmf.GroupArgs.ImportPrefix, ignoredKinds, rootScoped, scheme, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/install.go index aefb8032b11d..ce52be0a222f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/install.go @@ -32,7 +32,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r GroupName: apiserver.GroupName, RootScopedKinds: sets.NewString("APIService"), VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/apiserver/pkg/apis/apiserver", AddInternalObjectsToScheme: apiserver.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/install/install.go index 141a6508425c..fe6489354663 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/install/install.go @@ -33,7 +33,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: audit.GroupName, VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/apiserver/pkg/apis/audit", // Any Kind that is not namespaced must be cluster scoped. RootScopedKinds: sets.NewString("Event", "Policy"), AddInternalObjectsToScheme: audit.AddToScheme, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/install/install.go index 7b490d07eb41..e44a29e5a9c8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/install/install.go @@ -32,7 +32,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: example.GroupName, VersionPreferenceOrder: []string{examplev1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/apiserver/pkg/apis/example", AddInternalObjectsToScheme: example.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go index b8aed64c1f8e..98772750c7d8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go @@ -167,7 +167,7 @@ func TestInstallAPIGroups(t *testing.T) { }, nil } - mapper := meta.NewDefaultRESTMapperFromScheme([]schema.GroupVersion{gv}, interfacesFor, "", sets.NewString(), sets.NewString(), scheme) + mapper := meta.NewDefaultRESTMapperFromScheme([]schema.GroupVersion{gv}, interfacesFor, sets.NewString(), sets.NewString(), scheme) groupMeta := apimachinery.GroupMeta{ GroupVersion: gv, GroupVersions: []schema.GroupVersion{gv}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/api/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/api/install/install.go index 1b9553b706f3..e6280c659e4e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/api/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/api/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: api.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/api", AddInternalObjectsToScheme: api.AddToScheme, RootScopedKinds: sets.NewString( "Node", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/apps/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/apps/install/install.go index ca50f3ea44fd..18cc3c3aa11e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/apps/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/apps/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: apps.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/apis/apps", AddInternalObjectsToScheme: apps.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/authentication/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/authentication/install/install.go index b8a9521a6b7b..661226b26d09 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/authentication/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/authentication/install/install.go @@ -39,7 +39,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: authentication.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/apis/authentication", RootScopedKinds: sets.NewString("TokenReview"), AddInternalObjectsToScheme: authentication.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/authorization/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/authorization/install/install.go index 33eee6618c6e..bdbb458d8791 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/authorization/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/authorization/install/install.go @@ -39,7 +39,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: authorization.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/apis/authorization", RootScopedKinds: sets.NewString("SubjectAccessReview", "SelfSubjectAccessReview"), AddInternalObjectsToScheme: authorization.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/autoscaling/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/autoscaling/install/install.go index 0ecc0af9b7be..be6c29c93e62 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/autoscaling/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/autoscaling/install/install.go @@ -38,7 +38,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: autoscaling.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v2alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/apis/autoscaling", AddInternalObjectsToScheme: autoscaling.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/batch/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/batch/install/install.go index d37f31820df8..a9dfc6734134 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/batch/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/batch/install/install.go @@ -38,7 +38,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: batch.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v2alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/apis/batch", AddInternalObjectsToScheme: batch.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/certificates/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/certificates/install/install.go index 8850e07aa00d..38ae758197d7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/certificates/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/certificates/install/install.go @@ -38,7 +38,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: certificates.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/apis/certificates", RootScopedKinds: sets.NewString("CertificateSigningRequest"), AddInternalObjectsToScheme: certificates.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/extensions/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/extensions/install/install.go index 1f968e861c68..7b08daf4e549 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/extensions/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/extensions/install/install.go @@ -38,7 +38,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: extensions.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/apis/extensions", RootScopedKinds: sets.NewString("PodSecurityPolicy", "ThirdPartyResource"), AddInternalObjectsToScheme: extensions.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/policy/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/policy/install/install.go index 6253d5bc295c..6cd350f14230 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/policy/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/policy/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: policy.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/apis/policy", AddInternalObjectsToScheme: policy.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/rbac/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/rbac/install/install.go index f92c11e06c11..3ac0b973a5b3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/rbac/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/rbac/install/install.go @@ -39,7 +39,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: rbac.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version, v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/apis/rbac", RootScopedKinds: sets.NewString("ClusterRole", "ClusterRoleBinding"), AddInternalObjectsToScheme: rbac.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/settings/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/settings/install/install.go index ccdc70400a20..ef9c87c8186c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/settings/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/settings/install/install.go @@ -37,7 +37,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: settings.GroupName, VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/apis/settings", AddInternalObjectsToScheme: settings.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/storage/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/storage/install/install.go index 4608a54ea701..472ffae332e5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/storage/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/apis/storage/install/install.go @@ -39,7 +39,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: storage.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/client-go/pkg/apis/storage", RootScopedKinds: sets.NewString("StorageClass"), AddInternalObjectsToScheme: storage.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/install.go index 6cb769431ad2..ee6ff4644552 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/install.go @@ -32,7 +32,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r GroupName: apiregistration.GroupName, RootScopedKinds: sets.NewString("APIService"), VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kube-aggregator/pkg/apis/apiregistration", AddInternalObjectsToScheme: apiregistration.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-gen/cmd/client-gen/test_apis/testgroup/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-gen/cmd/client-gen/test_apis/testgroup/install/install.go index 3a6e00d6ccfe..3e5163cf1ed3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-gen/cmd/client-gen/test_apis/testgroup/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-gen/cmd/client-gen/test_apis/testgroup/install/install.go @@ -32,7 +32,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: testgroup.SchemeGroupVersion.Group, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/kube-gen/cmd/client-gen/test_apis/testgroup", AddInternalObjectsToScheme: testgroup.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/install.go index 1f325e16f7d6..e7ef5bbfcf16 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/install.go @@ -32,7 +32,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: custom_metrics.GroupName, VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/metrics/pkg/apis/custom_metrics", AddInternalObjectsToScheme: custom_metrics.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/install/install.go index 823be25ffd93..d82ce77a54ac 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/install/install.go @@ -33,7 +33,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: metrics.GroupName, VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/metrics/pkg/apis/metrics", RootScopedKinds: sets.NewString("NodeMetrics"), AddInternalObjectsToScheme: metrics.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/install.go index 74a961939ae4..882fa44355c6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/install.go @@ -32,7 +32,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r GroupName: wardle.GroupName, RootScopedKinds: sets.NewString("APIService"), VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/sample-apiserver/pkg/apis/wardle", AddInternalObjectsToScheme: wardle.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/test/integration/etcd/etcd_storage_path_test.go b/vendor/k8s.io/kubernetes/test/integration/etcd/etcd_storage_path_test.go index e3c1efd0c592..2dca2d2ed5b3 100644 --- a/vendor/k8s.io/kubernetes/test/integration/etcd/etcd_storage_path_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/etcd/etcd_storage_path_test.go @@ -387,7 +387,7 @@ var ephemeralWhiteList = createEphemeralWhiteList( // -- ) -// Only add kinds to this list when there is no mapping from GVK to GVR (and thus there is no way to create the object) +// Only add kinds to this list when there is no way to create the object var kindWhiteList = sets.NewString( // k8s.io/kubernetes/pkg/api/v1 "DeleteOptions", @@ -445,14 +445,14 @@ func TestEtcdStoragePath(t *testing.T) { kind := gvk.Kind pkgPath := apiType.PkgPath() + if kindWhiteList.Has(kind) { + kindSeen.Insert(kind) + continue + } + mapping, err := mapper.RESTMapping(gvk.GroupKind(), gvk.Version) if err != nil { - kindSeen.Insert(kind) - if kindWhiteList.Has(kind) { - // t.Logf("skipping test for %s from %s because its GVK %s is whitelisted and has no mapping", kind, pkgPath, gvk) - } else { - t.Errorf("no mapping found for %s from %s but its GVK %s is not whitelisted", kind, pkgPath, gvk) - } + t.Errorf("unexpected error getting mapping for %s from %s with GVK %s: %v", kind, pkgPath, gvk, err) continue } From 8de8108d1206c8b2cd0d8c6a40b84f5b6d2d4312 Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Thu, 10 Aug 2017 13:43:45 +0200 Subject: [PATCH 2/4] Remove Store.ImportPrefix everywhere --- pkg/authorization/apis/authorization/install/apigroup.go | 1 - pkg/authorization/apis/authorization/install/install.go | 4 +--- pkg/build/apis/build/install/apigroup.go | 1 - pkg/build/apis/build/install/install.go | 4 +--- pkg/build/controller/build/defaults/api/install/install.go | 5 ----- pkg/build/controller/build/overrides/api/install/install.go | 5 ----- pkg/cmd/server/api/install/install.go | 2 -- pkg/deploy/apis/apps/install/apigroup.go | 1 - pkg/deploy/apis/apps/install/install.go | 4 +--- pkg/image/apis/image/install/apigroup.go | 1 - pkg/image/apis/image/install/install.go | 4 +--- pkg/ingress/admission/api/install/install.go | 5 ----- pkg/oauth/apis/oauth/install/apigroup.go | 1 - pkg/oauth/apis/oauth/install/install.go | 4 +--- pkg/project/admission/requestlimit/api/install/install.go | 5 ----- pkg/project/apis/project/install/apigroup.go | 1 - pkg/project/apis/project/install/install.go | 4 +--- pkg/quota/admission/runonceduration/api/install/install.go | 5 ----- pkg/quota/apis/quota/install/apigroup.go | 1 - pkg/quota/apis/quota/install/install.go | 4 +--- pkg/route/apis/route/install/apigroup.go | 1 - pkg/route/apis/route/install/install.go | 4 +--- .../admission/podnodeconstraints/api/install/install.go | 5 ----- pkg/sdn/apis/network/install/apigroup.go | 1 - pkg/sdn/apis/network/install/install.go | 4 +--- pkg/security/apis/security/install/apigroup.go | 1 - pkg/security/apis/security/install/install.go | 4 +--- pkg/template/apis/template/install/apigroup.go | 1 - pkg/template/apis/template/install/install.go | 4 +--- pkg/user/apis/user/install/apigroup.go | 1 - pkg/user/apis/user/install/install.go | 4 +--- 31 files changed, 12 insertions(+), 80 deletions(-) diff --git a/pkg/authorization/apis/authorization/install/apigroup.go b/pkg/authorization/apis/authorization/install/apigroup.go index 603245bde52b..bf5e2886f3e1 100644 --- a/pkg/authorization/apis/authorization/install/apigroup.go +++ b/pkg/authorization/apis/authorization/install/apigroup.go @@ -21,7 +21,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: authorizationapi.GroupName, VersionPreferenceOrder: []string{authorizationapiv1.SchemeGroupVersion.Version}, - ImportPrefix: importPrefix, AddInternalObjectsToScheme: authorizationapi.AddToScheme, RootScopedKinds: sets.NewString("ClusterRole", "ClusterRoleBinding", "ClusterPolicy", "ClusterPolicyBinding", "SubjectAccessReview", "ResourceAccessReview"), }, diff --git a/pkg/authorization/apis/authorization/install/install.go b/pkg/authorization/apis/authorization/install/install.go index f36c820336f0..eb510bc6aef3 100644 --- a/pkg/authorization/apis/authorization/install/install.go +++ b/pkg/authorization/apis/authorization/install/install.go @@ -16,8 +16,6 @@ import ( authorizationapiv1 "github.com/openshift/origin/pkg/authorization/apis/authorization/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/authorization/apis/authorization" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -91,7 +89,7 @@ func addVersionsToScheme(externalVersions ...schema.GroupVersion) { func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("ClusterRole", "ClusterRoleBinding", "ClusterPolicy", "ClusterPolicyBinding") ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) } func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { diff --git a/pkg/build/apis/build/install/apigroup.go b/pkg/build/apis/build/install/apigroup.go index ff43e00c9fe7..3ed74b0e7de2 100644 --- a/pkg/build/apis/build/install/apigroup.go +++ b/pkg/build/apis/build/install/apigroup.go @@ -20,7 +20,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: buildapi.GroupName, VersionPreferenceOrder: []string{buildapiv1.SchemeGroupVersion.Version}, - ImportPrefix: importPrefix, AddInternalObjectsToScheme: buildapi.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/pkg/build/apis/build/install/install.go b/pkg/build/apis/build/install/install.go index 69fbfd69f798..9b972970572e 100644 --- a/pkg/build/apis/build/install/install.go +++ b/pkg/build/apis/build/install/install.go @@ -16,8 +16,6 @@ import ( buildapiv1 "github.com/openshift/origin/pkg/build/apis/build/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/build/apis/build" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -91,7 +89,7 @@ func addVersionsToScheme(externalVersions ...schema.GroupVersion) { func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString() ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) } func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { diff --git a/pkg/build/controller/build/defaults/api/install/install.go b/pkg/build/controller/build/defaults/api/install/install.go index 8d7903cd21bb..380275a47a69 100644 --- a/pkg/build/controller/build/defaults/api/install/install.go +++ b/pkg/build/controller/build/defaults/api/install/install.go @@ -3,7 +3,6 @@ package install import ( "github.com/golang/glog" - "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime/schema" "github.com/openshift/origin/pkg/build/controller/build/defaults/api" @@ -11,10 +10,6 @@ import ( configapi "github.com/openshift/origin/pkg/cmd/server/api" ) -const importPrefix = "github.com/openshift/origin/pkg/build/controller/build/defaults/api" - -var accessor = meta.NewAccessor() - // availableVersions lists all known external versions for this group from most preferred to least preferred var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} diff --git a/pkg/build/controller/build/overrides/api/install/install.go b/pkg/build/controller/build/overrides/api/install/install.go index f020e5b286c4..9b73e4e9c7d0 100644 --- a/pkg/build/controller/build/overrides/api/install/install.go +++ b/pkg/build/controller/build/overrides/api/install/install.go @@ -3,7 +3,6 @@ package install import ( "github.com/golang/glog" - "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime/schema" "github.com/openshift/origin/pkg/build/controller/build/overrides/api" @@ -11,10 +10,6 @@ import ( configapi "github.com/openshift/origin/pkg/cmd/server/api" ) -const importPrefix = "github.com/openshift/origin/pkg/build/controller/build/overrides/api" - -var accessor = meta.NewAccessor() - // availableVersions lists all known external versions for this group from most preferred to least preferred var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} diff --git a/pkg/cmd/server/api/install/install.go b/pkg/cmd/server/api/install/install.go index bce01909a7ad..12cdc8c558ba 100644 --- a/pkg/cmd/server/api/install/install.go +++ b/pkg/cmd/server/api/install/install.go @@ -21,8 +21,6 @@ import ( _ "github.com/openshift/origin/pkg/scheduler/admission/podnodeconstraints/api/install" ) -const importPrefix = "github.com/openshift/origin/pkg/cmd/server/api" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred diff --git a/pkg/deploy/apis/apps/install/apigroup.go b/pkg/deploy/apis/apps/install/apigroup.go index e53c49b6dc4e..d9c0b4be5a07 100644 --- a/pkg/deploy/apis/apps/install/apigroup.go +++ b/pkg/deploy/apis/apps/install/apigroup.go @@ -20,7 +20,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: deployapi.GroupName, VersionPreferenceOrder: []string{deployapiv1.SchemeGroupVersion.Version}, - ImportPrefix: importPrefix, AddInternalObjectsToScheme: deployapi.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/pkg/deploy/apis/apps/install/install.go b/pkg/deploy/apis/apps/install/install.go index 6dc91428b78b..184baf40c0cf 100644 --- a/pkg/deploy/apis/apps/install/install.go +++ b/pkg/deploy/apis/apps/install/install.go @@ -16,8 +16,6 @@ import ( deployapiv1 "github.com/openshift/origin/pkg/deploy/apis/apps/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/deploy/apis/apps" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -91,7 +89,7 @@ func addVersionsToScheme(externalVersions ...schema.GroupVersion) { func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString() ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) } func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { diff --git a/pkg/image/apis/image/install/apigroup.go b/pkg/image/apis/image/install/apigroup.go index 9e0ba9848857..ed165e1fc2fa 100644 --- a/pkg/image/apis/image/install/apigroup.go +++ b/pkg/image/apis/image/install/apigroup.go @@ -23,7 +23,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: imageapi.GroupName, VersionPreferenceOrder: []string{imageapiv1.SchemeGroupVersion.Version}, - ImportPrefix: importPrefix, AddInternalObjectsToScheme: func(scheme *runtime.Scheme) error { if err := docker10.AddToScheme(scheme); err != nil { return err diff --git a/pkg/image/apis/image/install/install.go b/pkg/image/apis/image/install/install.go index 34e6d32a0345..f2823c80ee21 100644 --- a/pkg/image/apis/image/install/install.go +++ b/pkg/image/apis/image/install/install.go @@ -18,8 +18,6 @@ import ( imageapiv1 "github.com/openshift/origin/pkg/image/apis/image/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/image/apis/image" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -97,7 +95,7 @@ func addVersionsToScheme(externalVersions ...schema.GroupVersion) { func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("Image", "ImageSignature") ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) } func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { diff --git a/pkg/ingress/admission/api/install/install.go b/pkg/ingress/admission/api/install/install.go index 6ba9cf768cb5..ef9c22fe5bea 100644 --- a/pkg/ingress/admission/api/install/install.go +++ b/pkg/ingress/admission/api/install/install.go @@ -3,7 +3,6 @@ package install import ( "github.com/golang/glog" - "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -11,10 +10,6 @@ import ( "github.com/openshift/origin/pkg/ingress/admission/api/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/scheduler/admission/api" - -var accessor = meta.NewAccessor() - // availableVersions lists all known external versions for this group from most perferred to least preferred var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} diff --git a/pkg/oauth/apis/oauth/install/apigroup.go b/pkg/oauth/apis/oauth/install/apigroup.go index 08dcb527dcc2..b31978ce6e15 100644 --- a/pkg/oauth/apis/oauth/install/apigroup.go +++ b/pkg/oauth/apis/oauth/install/apigroup.go @@ -21,7 +21,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: oauthapi.GroupName, VersionPreferenceOrder: []string{oauthapiv1.SchemeGroupVersion.Version}, - ImportPrefix: importPrefix, AddInternalObjectsToScheme: oauthapi.AddToScheme, RootScopedKinds: sets.NewString("OAuthAccessToken", "OAuthAuthorizeToken", "OAuthClient", "OAuthClientAuthorization"), }, diff --git a/pkg/oauth/apis/oauth/install/install.go b/pkg/oauth/apis/oauth/install/install.go index 2a3190a3a087..532d3c756437 100644 --- a/pkg/oauth/apis/oauth/install/install.go +++ b/pkg/oauth/apis/oauth/install/install.go @@ -16,8 +16,6 @@ import ( oauthapiv1 "github.com/openshift/origin/pkg/oauth/apis/oauth/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/oauth/apis/oauth" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -91,7 +89,7 @@ func addVersionsToScheme(externalVersions ...schema.GroupVersion) { func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("OAuthAccessToken", "OAuthAuthorizeToken", "OAuthClient", "OAuthClientAuthorization") ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) } func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { diff --git a/pkg/project/admission/requestlimit/api/install/install.go b/pkg/project/admission/requestlimit/api/install/install.go index 3049d8dfc25a..e5cc23f8b862 100644 --- a/pkg/project/admission/requestlimit/api/install/install.go +++ b/pkg/project/admission/requestlimit/api/install/install.go @@ -3,7 +3,6 @@ package install import ( "github.com/golang/glog" - "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -11,10 +10,6 @@ import ( "github.com/openshift/origin/pkg/project/admission/requestlimit/api/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/project/admission/requestlimit/api" - -var accessor = meta.NewAccessor() - // availableVersions lists all known external versions for this group from most preferred to least preferred var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion, v1.LegacySchemeGroupVersion} diff --git a/pkg/project/apis/project/install/apigroup.go b/pkg/project/apis/project/install/apigroup.go index c616e8d1707f..5cada05ddf00 100644 --- a/pkg/project/apis/project/install/apigroup.go +++ b/pkg/project/apis/project/install/apigroup.go @@ -21,7 +21,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: projectapi.GroupName, VersionPreferenceOrder: []string{projectapiv1.SchemeGroupVersion.Version}, - ImportPrefix: importPrefix, AddInternalObjectsToScheme: projectapi.AddToScheme, RootScopedKinds: sets.NewString("Project", "ProjectRequest"), }, diff --git a/pkg/project/apis/project/install/install.go b/pkg/project/apis/project/install/install.go index eab31a760599..149d09af52f8 100644 --- a/pkg/project/apis/project/install/install.go +++ b/pkg/project/apis/project/install/install.go @@ -16,8 +16,6 @@ import ( projectapiv1 "github.com/openshift/origin/pkg/project/apis/project/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/project/apis/project" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -91,7 +89,7 @@ func addVersionsToScheme(externalVersions ...schema.GroupVersion) { func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("Project", "ProjectRequest") ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) } func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { diff --git a/pkg/quota/admission/runonceduration/api/install/install.go b/pkg/quota/admission/runonceduration/api/install/install.go index a7f7f28ac03f..f51dada6f6a6 100644 --- a/pkg/quota/admission/runonceduration/api/install/install.go +++ b/pkg/quota/admission/runonceduration/api/install/install.go @@ -3,7 +3,6 @@ package install import ( "github.com/golang/glog" - "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -11,10 +10,6 @@ import ( "github.com/openshift/origin/pkg/quota/admission/runonceduration/api/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/quota/admission/runonceduration/api" - -var accessor = meta.NewAccessor() - // availableVersions lists all known external versions for this group from most preferred to least preferred var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} diff --git a/pkg/quota/apis/quota/install/apigroup.go b/pkg/quota/apis/quota/install/apigroup.go index 5770a7a9098f..364cc9f1b7fb 100644 --- a/pkg/quota/apis/quota/install/apigroup.go +++ b/pkg/quota/apis/quota/install/apigroup.go @@ -21,7 +21,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: quotaapi.GroupName, VersionPreferenceOrder: []string{quotaapiv1.SchemeGroupVersion.Version}, - ImportPrefix: importPrefix, AddInternalObjectsToScheme: quotaapi.AddToScheme, RootScopedKinds: sets.NewString("ClusterResourceQuota"), }, diff --git a/pkg/quota/apis/quota/install/install.go b/pkg/quota/apis/quota/install/install.go index 5adf4211a8e9..1e8aec3962c0 100644 --- a/pkg/quota/apis/quota/install/install.go +++ b/pkg/quota/apis/quota/install/install.go @@ -16,8 +16,6 @@ import ( quotaapiv1 "github.com/openshift/origin/pkg/quota/apis/quota/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/quota/apis/quota" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -74,7 +72,7 @@ func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("ClusterResourceQuota") ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) } // interfacesFor returns the default Codec and ResourceVersioner for a given version diff --git a/pkg/route/apis/route/install/apigroup.go b/pkg/route/apis/route/install/apigroup.go index 3d8bc8ab8b6d..b8d7c84b642c 100644 --- a/pkg/route/apis/route/install/apigroup.go +++ b/pkg/route/apis/route/install/apigroup.go @@ -20,7 +20,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: routeapi.GroupName, VersionPreferenceOrder: []string{routeapiv1.SchemeGroupVersion.Version}, - ImportPrefix: importPrefix, AddInternalObjectsToScheme: routeapi.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/pkg/route/apis/route/install/install.go b/pkg/route/apis/route/install/install.go index e7081f48c86a..9a77c7b603f0 100644 --- a/pkg/route/apis/route/install/install.go +++ b/pkg/route/apis/route/install/install.go @@ -16,8 +16,6 @@ import ( routeapiv1 "github.com/openshift/origin/pkg/route/apis/route/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/route/apis/route" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -91,7 +89,7 @@ func addVersionsToScheme(externalVersions ...schema.GroupVersion) { func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString() ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) } func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { diff --git a/pkg/scheduler/admission/podnodeconstraints/api/install/install.go b/pkg/scheduler/admission/podnodeconstraints/api/install/install.go index 63c4ef7e2aaa..779e8dbf1b09 100644 --- a/pkg/scheduler/admission/podnodeconstraints/api/install/install.go +++ b/pkg/scheduler/admission/podnodeconstraints/api/install/install.go @@ -3,7 +3,6 @@ package install import ( "github.com/golang/glog" - "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -11,10 +10,6 @@ import ( "github.com/openshift/origin/pkg/scheduler/admission/podnodeconstraints/api/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/scheduler/admission/podnodeconstraints/api" - -var accessor = meta.NewAccessor() - // availableVersions lists all known external versions for this group from most preferred to least preferred var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} diff --git a/pkg/sdn/apis/network/install/apigroup.go b/pkg/sdn/apis/network/install/apigroup.go index 8f0790718bbb..acbcf01d2cab 100644 --- a/pkg/sdn/apis/network/install/apigroup.go +++ b/pkg/sdn/apis/network/install/apigroup.go @@ -21,7 +21,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: sdnapi.GroupName, VersionPreferenceOrder: []string{sdnapiv1.SchemeGroupVersion.Version}, - ImportPrefix: importPrefix, AddInternalObjectsToScheme: sdnapi.AddToScheme, RootScopedKinds: sets.NewString("ClusterNetwork", "HostSubnet", "NetNamespace"), }, diff --git a/pkg/sdn/apis/network/install/install.go b/pkg/sdn/apis/network/install/install.go index f33a4e4a9d53..dda1662e9a88 100644 --- a/pkg/sdn/apis/network/install/install.go +++ b/pkg/sdn/apis/network/install/install.go @@ -16,8 +16,6 @@ import ( sdnapiv1 "github.com/openshift/origin/pkg/sdn/apis/network/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/sdn/apis/network" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -91,7 +89,7 @@ func addVersionsToScheme(externalVersions ...schema.GroupVersion) { func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("ClusterNetwork", "HostSubnet", "NetNamespace") ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) } func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { diff --git a/pkg/security/apis/security/install/apigroup.go b/pkg/security/apis/security/install/apigroup.go index 9939ecde37cb..ea4740469c15 100644 --- a/pkg/security/apis/security/install/apigroup.go +++ b/pkg/security/apis/security/install/apigroup.go @@ -22,7 +22,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r GroupName: securityapi.GroupName, VersionPreferenceOrder: []string{securityapiv1.SchemeGroupVersion.Version}, RootScopedKinds: sets.NewString("SecurityContextConstraints"), - ImportPrefix: importPrefix, AddInternalObjectsToScheme: securityapi.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/pkg/security/apis/security/install/install.go b/pkg/security/apis/security/install/install.go index a9361dcb29b8..ea1a39f0065a 100644 --- a/pkg/security/apis/security/install/install.go +++ b/pkg/security/apis/security/install/install.go @@ -18,8 +18,6 @@ import ( securityapiv1 "github.com/openshift/origin/pkg/security/apis/security/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/security/apis/security" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -96,7 +94,7 @@ func addVersionsToScheme(registry *registered.APIRegistrationManager, scheme *ru func newRESTMapper(registry *registered.APIRegistrationManager, scheme *runtime.Scheme, externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("SecurityContextConstraints") ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor(registry, scheme), importPrefix, ignoredKinds, rootScoped, scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor(registry, scheme), ignoredKinds, rootScoped, scheme) } func interfacesFor(registry *registered.APIRegistrationManager, scheme *runtime.Scheme) func(version schema.GroupVersion) (*meta.VersionInterfaces, error) { diff --git a/pkg/template/apis/template/install/apigroup.go b/pkg/template/apis/template/install/apigroup.go index 8e3e5edfa20b..f7881f9c8fe8 100644 --- a/pkg/template/apis/template/install/apigroup.go +++ b/pkg/template/apis/template/install/apigroup.go @@ -21,7 +21,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: templateapi.GroupName, VersionPreferenceOrder: []string{templateapiv1.LegacySchemeGroupVersion.Version}, - ImportPrefix: importPrefix, AddInternalObjectsToScheme: templateapi.AddToScheme, RootScopedKinds: sets.NewString("BrokerTemplateInstance"), }, diff --git a/pkg/template/apis/template/install/install.go b/pkg/template/apis/template/install/install.go index 17cd0de55296..3981504d2796 100644 --- a/pkg/template/apis/template/install/install.go +++ b/pkg/template/apis/template/install/install.go @@ -16,8 +16,6 @@ import ( templateapiv1 "github.com/openshift/origin/pkg/template/apis/template/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/template/apis/template" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -95,7 +93,7 @@ func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { } rootScoped := sets.NewString("BrokerTemplateInstance") ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) } func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { diff --git a/pkg/user/apis/user/install/apigroup.go b/pkg/user/apis/user/install/apigroup.go index cebcebfe17d9..b7a7857870b9 100644 --- a/pkg/user/apis/user/install/apigroup.go +++ b/pkg/user/apis/user/install/apigroup.go @@ -21,7 +21,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: userapi.GroupName, VersionPreferenceOrder: []string{userapiv1.SchemeGroupVersion.Version}, - ImportPrefix: importPrefix, AddInternalObjectsToScheme: userapi.AddToScheme, RootScopedKinds: sets.NewString("User", "Identity", "UserIdentityMapping", "Group"), }, diff --git a/pkg/user/apis/user/install/install.go b/pkg/user/apis/user/install/install.go index f93e6256e11b..52ae5b52a68f 100644 --- a/pkg/user/apis/user/install/install.go +++ b/pkg/user/apis/user/install/install.go @@ -16,8 +16,6 @@ import ( userapiv1 "github.com/openshift/origin/pkg/user/apis/user/v1" ) -const importPrefix = "github.com/openshift/origin/pkg/user/apis/user" - var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred @@ -91,7 +89,7 @@ func addVersionsToScheme(externalVersions ...schema.GroupVersion) { func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("User", "Identity", "UserIdentityMapping", "Group") ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) } func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { From fabc231914ce2870cc648ce0acc20962760267bb Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Thu, 10 Aug 2017 13:48:45 +0200 Subject: [PATCH 3/4] Update etcd path test to always use kindWhiteList Most types now have valid rest mappings because NewDefaultRESTMapperFromScheme no longer ignores certain import paths. Thus we can no longer use the lack of a valid REST mapping as an indicator for when to use kindWhiteList. Thus kindWhiteList now serves as a whitelist for all kinds and not just those that formally had no mapping. This does mean that we could whitelist kinds due to a name conflict, but that is unlikely as names such as GetOptions are not appropriate for new objects. --- test/integration/etcd_storage_path_test.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/integration/etcd_storage_path_test.go b/test/integration/etcd_storage_path_test.go index 1d6c710c87b1..9a9fef01b5ff 100644 --- a/test/integration/etcd_storage_path_test.go +++ b/test/integration/etcd_storage_path_test.go @@ -806,7 +806,7 @@ var ephemeralWhiteList = createEphemeralWhiteList( // -- ) -// Only add kinds to this list when there is no mapping from GVK to GVR (and thus there is no way to create the object) +// Only add kinds to this list when there is no way to create the object var kindWhiteList = sets.NewString( // k8s.io/apimachinery/pkg/apis/meta/v1 "APIVersions", @@ -942,14 +942,14 @@ func testEtcdStoragePath(t *testing.T, etcdServer *etcdtest.EtcdTestServer, gett kind := gvk.Kind pkgPath := apiType.PkgPath() + if kindWhiteList.Has(kind) { + kindSeen.Insert(kind) + continue + } + mapping, err := mapper.RESTMapping(gvk.GroupKind(), gvk.Version) if err != nil { - kindSeen.Insert(kind) - if kindWhiteList.Has(kind) { - // t.Logf("skipping test for %s from %s because its GVK %s is whitelisted and has no mapping", kind, pkgPath, gvk) - } else { - t.Errorf("no mapping found for %s from %s but its GVK %s is not whitelisted", kind, pkgPath, gvk) - } + t.Errorf("unexpected error getting mapping for %s from %s with GVK %s: %v", kind, pkgPath, gvk, err) continue } From abee9c6b72dd50222ec3ce59f1a95b98eb678f15 Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Fri, 11 Aug 2017 16:18:25 +0200 Subject: [PATCH 4/4] Unify and simplify legacy api installation At the same time we get rid of the need for Store.ImportPrefix to filter the RESTMapper for each legacy group. Before this commit we had overlapping RESTMapper, even inconsistent ones because the root kinds were wrong outside of each legacy group. --- pkg/api/legacy/install.go | 78 +++++++++++ .../apis/authorization/install/apigroup.go | 33 ----- .../apis/authorization/install/install.go | 113 ++++------------ pkg/build/apis/build/install/apigroup.go | 31 ----- pkg/build/apis/build/install/install.go | 111 +++------------- pkg/deploy/apis/apps/install/apigroup.go | 31 ----- pkg/deploy/apis/apps/install/install.go | 111 +++------------- pkg/image/apis/image/install/apigroup.go | 41 ------ pkg/image/apis/image/install/install.go | 123 ++++-------------- pkg/oauth/apis/oauth/install/apigroup.go | 33 ----- pkg/oauth/apis/oauth/install/install.go | 113 ++++------------ pkg/project/apis/project/install/apigroup.go | 33 ----- pkg/project/apis/project/install/install.go | 113 ++++------------ pkg/quota/apis/quota/install/apigroup.go | 33 ----- pkg/quota/apis/quota/install/install.go | 113 ++++------------ pkg/route/apis/route/install/apigroup.go | 31 ----- pkg/route/apis/route/install/install.go | 111 +++------------- pkg/sdn/apis/network/install/apigroup.go | 33 ----- pkg/sdn/apis/network/install/install.go | 113 ++++------------ .../apis/security/install/apigroup.go | 33 ----- pkg/security/apis/security/install/install.go | 116 +++-------------- pkg/security/legacyclient/scc.go | 4 +- .../apis/template/install/apigroup.go | 33 ----- pkg/template/apis/template/install/install.go | 117 ++++------------- pkg/user/apis/user/install/apigroup.go | 33 ----- pkg/user/apis/user/install/install.go | 113 ++++------------ 26 files changed, 339 insertions(+), 1508 deletions(-) create mode 100644 pkg/api/legacy/install.go delete mode 100644 pkg/authorization/apis/authorization/install/apigroup.go delete mode 100644 pkg/build/apis/build/install/apigroup.go delete mode 100644 pkg/deploy/apis/apps/install/apigroup.go delete mode 100644 pkg/image/apis/image/install/apigroup.go delete mode 100644 pkg/oauth/apis/oauth/install/apigroup.go delete mode 100644 pkg/project/apis/project/install/apigroup.go delete mode 100644 pkg/quota/apis/quota/install/apigroup.go delete mode 100644 pkg/route/apis/route/install/apigroup.go delete mode 100644 pkg/sdn/apis/network/install/apigroup.go delete mode 100644 pkg/security/apis/security/install/apigroup.go delete mode 100644 pkg/template/apis/template/install/apigroup.go delete mode 100644 pkg/user/apis/user/install/apigroup.go diff --git a/pkg/api/legacy/install.go b/pkg/api/legacy/install.go new file mode 100644 index 000000000000..3eeba6a40a94 --- /dev/null +++ b/pkg/api/legacy/install.go @@ -0,0 +1,78 @@ +package legacy + +import ( + "fmt" + + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + kapi "k8s.io/kubernetes/pkg/api" +) + +var ( + accessor = meta.NewAccessor() + coreV1 = schema.GroupVersion{Group: "", Version: "v1"} +) + +func InstallLegacy(group string, addToCore, addToCoreV1 func(*runtime.Scheme) error, rootScopedKinds sets.String, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { + interfacesFor := interfacesForGroup(group) + + // install core V1 types temporarily into a local scheme to enumerate them + mapper := meta.NewDefaultRESTMapper([]schema.GroupVersion{coreV1}, interfacesFor) + localScheme := runtime.NewScheme() + if err := addToCoreV1(localScheme); err != nil { + panic(err) + } + for kind := range localScheme.KnownTypes(coreV1) { + scope := meta.RESTScopeNamespace + if rootScopedKinds.Has(kind) { + scope = meta.RESTScopeRoot + } + mapper.Add(coreV1.WithKind(kind), scope) + } + + // register core v1 version. Should be done by kube (if the import dependencies are right). + registry.RegisterVersions([]schema.GroupVersion{coreV1}) + if err := registry.EnableVersions(coreV1); err != nil { + panic(err) + } + + // register types as core v1 + if err := addToCore(scheme); err != nil { + panic(err) + } + if err := addToCoreV1(scheme); err != nil { + panic(err) + } + + // add to group + legacyGroupMeta := apimachinery.GroupMeta{ + GroupVersion: coreV1, + GroupVersions: []schema.GroupVersion{coreV1}, + RESTMapper: mapper, + SelfLinker: runtime.SelfLinker(accessor), + InterfacesFor: interfacesFor, + } + if err := registry.RegisterGroup(legacyGroupMeta); err != nil { + panic(err) + } +} + +func interfacesForGroup(group string) func(version schema.GroupVersion) (*meta.VersionInterfaces, error) { + return func(version schema.GroupVersion) (*meta.VersionInterfaces, error) { + switch version { + case coreV1: + return &meta.VersionInterfaces{ + ObjectConvertor: kapi.Scheme, + MetadataAccessor: accessor, + }, nil + + default: + g, _ := kapi.Registry.Group(group) + return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) + } + } +} diff --git a/pkg/authorization/apis/authorization/install/apigroup.go b/pkg/authorization/apis/authorization/install/apigroup.go deleted file mode 100644 index bf5e2886f3e1..000000000000 --- a/pkg/authorization/apis/authorization/install/apigroup.go +++ /dev/null @@ -1,33 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - kapi "k8s.io/kubernetes/pkg/api" - - authorizationapi "github.com/openshift/origin/pkg/authorization/apis/authorization" - authorizationapiv1 "github.com/openshift/origin/pkg/authorization/apis/authorization/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: authorizationapi.GroupName, - VersionPreferenceOrder: []string{authorizationapiv1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: authorizationapi.AddToScheme, - RootScopedKinds: sets.NewString("ClusterRole", "ClusterRoleBinding", "ClusterPolicy", "ClusterPolicyBinding", "SubjectAccessReview", "ResourceAccessReview"), - }, - announced.VersionToSchemeFunc{ - authorizationapiv1.SchemeGroupVersion.Version: authorizationapiv1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/authorization/apis/authorization/install/install.go b/pkg/authorization/apis/authorization/install/install.go index eb510bc6aef3..ad008f965feb 100644 --- a/pkg/authorization/apis/authorization/install/install.go +++ b/pkg/authorization/apis/authorization/install/install.go @@ -1,107 +1,38 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/api/legacy" authorizationapi "github.com/openshift/origin/pkg/authorization/apis/authorization" authorizationapiv1 "github.com/openshift/origin/pkg/authorization/apis/authorization/v1" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{authorizationapiv1.LegacySchemeGroupVersion} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.Infof("No version is registered for group %v", authorizationapi.GroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - panic(err) - } - if err := enableVersions(externalVersions); err != nil { - panic(err) - } - - installApiGroup() -} - -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []schema.GroupVersion) error { - addVersionsToScheme(externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor, - } - - if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(authorizationapi.GroupName, authorizationapi.AddToSchemeInCoreGroup, authorizationapiv1.AddToSchemeInCoreGroup, + sets.NewString("ClusterRole", "ClusterRoleBinding", "ClusterPolicy", "ClusterPolicyBinding"), + kapi.Registry, kapi.Scheme, + ) } -func addVersionsToScheme(externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - authorizationapi.AddToSchemeInCoreGroup(kapi.Scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !kapi.Registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case authorizationapiv1.LegacySchemeGroupVersion: - authorizationapiv1.AddToSchemeInCoreGroup(kapi.Scheme) - - default: - glog.Errorf("Version %s is not known, so it will not be added to the Scheme.", v) - continue - } - } -} - -func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { - rootScoped := sets.NewString("ClusterRole", "ClusterRoleBinding", "ClusterPolicy", "ClusterPolicyBinding") - ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) -} - -func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case authorizationapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: kapi.Scheme, - MetadataAccessor: accessor, - }, nil - - default: - g, _ := kapi.Registry.Group(authorizationapi.GroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) +// 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: authorizationapi.GroupName, + VersionPreferenceOrder: []string{authorizationapiv1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: authorizationapi.AddToScheme, + RootScopedKinds: sets.NewString("ClusterRole", "ClusterRoleBinding", "ClusterPolicy", "ClusterPolicyBinding", "SubjectAccessReview", "ResourceAccessReview"), + }, + announced.VersionToSchemeFunc{ + authorizationapiv1.SchemeGroupVersion.Version: authorizationapiv1.AddToScheme, + }, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } } diff --git a/pkg/build/apis/build/install/apigroup.go b/pkg/build/apis/build/install/apigroup.go deleted file mode 100644 index 3ed74b0e7de2..000000000000 --- a/pkg/build/apis/build/install/apigroup.go +++ /dev/null @@ -1,31 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - kapi "k8s.io/kubernetes/pkg/api" - - buildapi "github.com/openshift/origin/pkg/build/apis/build" - buildapiv1 "github.com/openshift/origin/pkg/build/apis/build/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: buildapi.GroupName, - VersionPreferenceOrder: []string{buildapiv1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: buildapi.AddToScheme, - }, - announced.VersionToSchemeFunc{ - buildapiv1.SchemeGroupVersion.Version: buildapiv1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/build/apis/build/install/install.go b/pkg/build/apis/build/install/install.go index 9b972970572e..45c4bc778039 100644 --- a/pkg/build/apis/build/install/install.go +++ b/pkg/build/apis/build/install/install.go @@ -1,107 +1,34 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/api/legacy" buildapi "github.com/openshift/origin/pkg/build/apis/build" buildapiv1 "github.com/openshift/origin/pkg/build/apis/build/v1" + "k8s.io/apimachinery/pkg/util/sets" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{buildapiv1.LegacySchemeGroupVersion} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.Infof("No version is registered for group %v", buildapi.LegacyGroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - panic(err) - } - if err := enableVersions(externalVersions); err != nil { - panic(err) - } - - installApiGroup() + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(buildapi.GroupName, buildapi.AddToSchemeInCoreGroup, buildapiv1.AddToSchemeInCoreGroup, sets.NewString(), kapi.Registry, kapi.Scheme) } -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []schema.GroupVersion) error { - addVersionsToScheme(externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor, - } - - if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil -} - -func addVersionsToScheme(externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - buildapi.AddToSchemeInCoreGroup(kapi.Scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !kapi.Registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case buildapiv1.LegacySchemeGroupVersion: - buildapiv1.AddToSchemeInCoreGroup(kapi.Scheme) - - default: - glog.Errorf("Version %s is not known, so it will not be added to the Scheme.", v) - continue - } - } -} - -func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { - rootScoped := sets.NewString() - ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) -} - -func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case buildapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: kapi.Scheme, - MetadataAccessor: accessor, - }, nil - - default: - g, _ := kapi.Registry.Group(buildapi.LegacyGroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) +// 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: buildapi.GroupName, + VersionPreferenceOrder: []string{buildapiv1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: buildapi.AddToScheme, + }, + announced.VersionToSchemeFunc{ + buildapiv1.SchemeGroupVersion.Version: buildapiv1.AddToScheme, + }, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } } diff --git a/pkg/deploy/apis/apps/install/apigroup.go b/pkg/deploy/apis/apps/install/apigroup.go deleted file mode 100644 index d9c0b4be5a07..000000000000 --- a/pkg/deploy/apis/apps/install/apigroup.go +++ /dev/null @@ -1,31 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - kapi "k8s.io/kubernetes/pkg/api" - - deployapi "github.com/openshift/origin/pkg/deploy/apis/apps" - deployapiv1 "github.com/openshift/origin/pkg/deploy/apis/apps/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: deployapi.GroupName, - VersionPreferenceOrder: []string{deployapiv1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: deployapi.AddToScheme, - }, - announced.VersionToSchemeFunc{ - deployapiv1.SchemeGroupVersion.Version: deployapiv1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/deploy/apis/apps/install/install.go b/pkg/deploy/apis/apps/install/install.go index 184baf40c0cf..d6f8f5524ead 100644 --- a/pkg/deploy/apis/apps/install/install.go +++ b/pkg/deploy/apis/apps/install/install.go @@ -1,107 +1,34 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + legacy "github.com/openshift/origin/pkg/api/legacy" deployapi "github.com/openshift/origin/pkg/deploy/apis/apps" deployapiv1 "github.com/openshift/origin/pkg/deploy/apis/apps/v1" + "k8s.io/apimachinery/pkg/util/sets" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{deployapiv1.LegacySchemeGroupVersion} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.Infof("No version is registered for group %v", deployapi.LegacyGroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - panic(err) - } - if err := enableVersions(externalVersions); err != nil { - panic(err) - } - - installApiGroup() + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(deployapi.GroupName, deployapi.AddToSchemeInCoreGroup, deployapiv1.AddToSchemeInCoreGroup, sets.NewString(), kapi.Registry, kapi.Scheme) } -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and -// kapi.Registry.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []schema.GroupVersion) error { - addVersionsToScheme(externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor, - } - - if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil -} - -func addVersionsToScheme(externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - deployapi.AddToSchemeInCoreGroup(kapi.Scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !kapi.Registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case deployapiv1.LegacySchemeGroupVersion: - deployapiv1.AddToSchemeInCoreGroup(kapi.Scheme) - - default: - glog.Errorf("Version %s is not known, so it will not be added to the Scheme.", v) - continue - } - } -} - -func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { - rootScoped := sets.NewString() - ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) -} - -func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case deployapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: kapi.Scheme, - MetadataAccessor: accessor, - }, nil - - default: - g, _ := kapi.Registry.Group(deployapi.LegacyGroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) +// 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: deployapi.GroupName, + VersionPreferenceOrder: []string{deployapiv1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: deployapi.AddToScheme, + }, + announced.VersionToSchemeFunc{ + deployapiv1.SchemeGroupVersion.Version: deployapiv1.AddToScheme, + }, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } } diff --git a/pkg/image/apis/image/install/apigroup.go b/pkg/image/apis/image/install/apigroup.go deleted file mode 100644 index ed165e1fc2fa..000000000000 --- a/pkg/image/apis/image/install/apigroup.go +++ /dev/null @@ -1,41 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - kapi "k8s.io/kubernetes/pkg/api" - - imageapi "github.com/openshift/origin/pkg/image/apis/image" - "github.com/openshift/origin/pkg/image/apis/image/docker10" - "github.com/openshift/origin/pkg/image/apis/image/dockerpre012" - imageapiv1 "github.com/openshift/origin/pkg/image/apis/image/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: imageapi.GroupName, - VersionPreferenceOrder: []string{imageapiv1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: func(scheme *runtime.Scheme) error { - if err := docker10.AddToScheme(scheme); err != nil { - return err - } - if err := dockerpre012.AddToScheme(scheme); err != nil { - return err - } - return imageapi.AddToScheme(scheme) - }, - RootScopedKinds: sets.NewString("Image", "ImageSignature"), - }, - announced.VersionToSchemeFunc{imageapiv1.SchemeGroupVersion.Version: imageapiv1.AddToScheme}, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/image/apis/image/install/install.go b/pkg/image/apis/image/install/install.go index f2823c80ee21..80e58946e547 100644 --- a/pkg/image/apis/image/install/install.go +++ b/pkg/image/apis/image/install/install.go @@ -1,113 +1,46 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/api/legacy" imageapi "github.com/openshift/origin/pkg/image/apis/image" "github.com/openshift/origin/pkg/image/apis/image/docker10" "github.com/openshift/origin/pkg/image/apis/image/dockerpre012" imageapiv1 "github.com/openshift/origin/pkg/image/apis/image/v1" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{ - imageapiv1.LegacySchemeGroupVersion, -} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.Infof("No version is registered for group %v", imageapi.LegacyGroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - panic(err) - } - if err := enableVersions(externalVersions); err != nil { - panic(err) - } - - installApiGroup() + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(imageapi.GroupName, imageapi.AddToSchemeInCoreGroup, imageapiv1.AddToSchemeInCoreGroup, + sets.NewString("Image", "ImageSignature"), + kapi.Registry, kapi.Scheme, + ) } -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and -// kapi.Registry.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []schema.GroupVersion) error { - addVersionsToScheme(externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor, - } - - if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil -} - -func addVersionsToScheme(externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - imageapi.AddToSchemeInCoreGroup(kapi.Scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !kapi.Registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case imageapiv1.LegacySchemeGroupVersion: - imageapiv1.AddToSchemeInCoreGroup(kapi.Scheme) - docker10.AddToSchemeInCoreGroup(kapi.Scheme) - dockerpre012.AddToSchemeInCoreGroup(kapi.Scheme) - - default: - glog.Errorf("Version %s is not known, so it will not be added to the Scheme.", v) - continue - } - } -} - -func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { - rootScoped := sets.NewString("Image", "ImageSignature") - ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) -} - -func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case imageapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: kapi.Scheme, - MetadataAccessor: accessor, - }, nil - - default: - g, _ := kapi.Registry.Group(imageapi.LegacyGroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) +// 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: imageapi.GroupName, + VersionPreferenceOrder: []string{imageapiv1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: func(scheme *runtime.Scheme) error { + if err := docker10.AddToScheme(scheme); err != nil { + return err + } + if err := dockerpre012.AddToScheme(scheme); err != nil { + return err + } + return imageapi.AddToScheme(scheme) + }, + RootScopedKinds: sets.NewString("Image", "ImageSignature"), + }, + announced.VersionToSchemeFunc{imageapiv1.SchemeGroupVersion.Version: imageapiv1.AddToScheme}, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } } diff --git a/pkg/oauth/apis/oauth/install/apigroup.go b/pkg/oauth/apis/oauth/install/apigroup.go deleted file mode 100644 index b31978ce6e15..000000000000 --- a/pkg/oauth/apis/oauth/install/apigroup.go +++ /dev/null @@ -1,33 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - kapi "k8s.io/kubernetes/pkg/api" - - oauthapi "github.com/openshift/origin/pkg/oauth/apis/oauth" - oauthapiv1 "github.com/openshift/origin/pkg/oauth/apis/oauth/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: oauthapi.GroupName, - VersionPreferenceOrder: []string{oauthapiv1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: oauthapi.AddToScheme, - RootScopedKinds: sets.NewString("OAuthAccessToken", "OAuthAuthorizeToken", "OAuthClient", "OAuthClientAuthorization"), - }, - announced.VersionToSchemeFunc{ - oauthapiv1.SchemeGroupVersion.Version: oauthapiv1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/oauth/apis/oauth/install/install.go b/pkg/oauth/apis/oauth/install/install.go index 532d3c756437..4e90cb18c283 100644 --- a/pkg/oauth/apis/oauth/install/install.go +++ b/pkg/oauth/apis/oauth/install/install.go @@ -1,107 +1,38 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/api/legacy" oauthapi "github.com/openshift/origin/pkg/oauth/apis/oauth" oauthapiv1 "github.com/openshift/origin/pkg/oauth/apis/oauth/v1" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{oauthapiv1.LegacySchemeGroupVersion} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.Infof("No version is registered for group %v", oauthapi.LegacyGroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - panic(err) - } - if err := enableVersions(externalVersions); err != nil { - panic(err) - } - - installApiGroup() -} - -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []schema.GroupVersion) error { - addVersionsToScheme(externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor, - } - - if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(oauthapi.GroupName, oauthapi.AddToSchemeInCoreGroup, oauthapiv1.AddToSchemeInCoreGroup, + sets.NewString("OAuthAccessToken", "OAuthAuthorizeToken", "OAuthClient", "OAuthClientAuthorization"), + kapi.Registry, kapi.Scheme, + ) } -func addVersionsToScheme(externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - oauthapi.AddToSchemeInCoreGroup(kapi.Scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !kapi.Registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case oauthapiv1.LegacySchemeGroupVersion: - oauthapiv1.AddToSchemeInCoreGroup(kapi.Scheme) - - default: - glog.Errorf("Version %s is not known, so it will not be added to the Scheme.", v) - continue - } - } -} - -func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { - rootScoped := sets.NewString("OAuthAccessToken", "OAuthAuthorizeToken", "OAuthClient", "OAuthClientAuthorization") - ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) -} - -func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case oauthapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: kapi.Scheme, - MetadataAccessor: accessor, - }, nil - - default: - g, _ := kapi.Registry.Group(oauthapi.LegacyGroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) +// 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: oauthapi.GroupName, + VersionPreferenceOrder: []string{oauthapiv1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: oauthapi.AddToScheme, + RootScopedKinds: sets.NewString("OAuthAccessToken", "OAuthAuthorizeToken", "OAuthClient", "OAuthClientAuthorization"), + }, + announced.VersionToSchemeFunc{ + oauthapiv1.SchemeGroupVersion.Version: oauthapiv1.AddToScheme, + }, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } } diff --git a/pkg/project/apis/project/install/apigroup.go b/pkg/project/apis/project/install/apigroup.go deleted file mode 100644 index 5cada05ddf00..000000000000 --- a/pkg/project/apis/project/install/apigroup.go +++ /dev/null @@ -1,33 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - kapi "k8s.io/kubernetes/pkg/api" - - projectapi "github.com/openshift/origin/pkg/project/apis/project" - projectapiv1 "github.com/openshift/origin/pkg/project/apis/project/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: projectapi.GroupName, - VersionPreferenceOrder: []string{projectapiv1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: projectapi.AddToScheme, - RootScopedKinds: sets.NewString("Project", "ProjectRequest"), - }, - announced.VersionToSchemeFunc{ - projectapiv1.SchemeGroupVersion.Version: projectapiv1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/project/apis/project/install/install.go b/pkg/project/apis/project/install/install.go index 149d09af52f8..afd3968a8635 100644 --- a/pkg/project/apis/project/install/install.go +++ b/pkg/project/apis/project/install/install.go @@ -1,107 +1,38 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/api/legacy" projectapi "github.com/openshift/origin/pkg/project/apis/project" projectapiv1 "github.com/openshift/origin/pkg/project/apis/project/v1" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{projectapiv1.LegacySchemeGroupVersion} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.Infof("No version is registered for group %q", projectapi.LegacyGroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - panic(err) - } - if err := enableVersions(externalVersions); err != nil { - panic(err) - } - - installApiGroup() -} - -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []schema.GroupVersion) error { - addVersionsToScheme(externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor, - } - - if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(projectapi.GroupName, projectapi.AddToSchemeInCoreGroup, projectapiv1.AddToSchemeInCoreGroup, + sets.NewString("Project", "ProjectRequest"), + kapi.Registry, kapi.Scheme, + ) } -func addVersionsToScheme(externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - projectapi.AddToSchemeInCoreGroup(kapi.Scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !kapi.Registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case projectapiv1.LegacySchemeGroupVersion: - projectapiv1.AddToSchemeInCoreGroup(kapi.Scheme) - - default: - glog.Errorf("Version %s is not known, so it will not be added to the Scheme.", v) - continue - } - } -} - -func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { - rootScoped := sets.NewString("Project", "ProjectRequest") - ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) -} - -func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case projectapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: kapi.Scheme, - MetadataAccessor: accessor, - }, nil - - default: - g, _ := kapi.Registry.Group(projectapi.LegacyGroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) +// 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: projectapi.GroupName, + VersionPreferenceOrder: []string{projectapiv1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: projectapi.AddToScheme, + RootScopedKinds: sets.NewString("Project", "ProjectRequest"), + }, + announced.VersionToSchemeFunc{ + projectapiv1.SchemeGroupVersion.Version: projectapiv1.AddToScheme, + }, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } } diff --git a/pkg/quota/apis/quota/install/apigroup.go b/pkg/quota/apis/quota/install/apigroup.go deleted file mode 100644 index 364cc9f1b7fb..000000000000 --- a/pkg/quota/apis/quota/install/apigroup.go +++ /dev/null @@ -1,33 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - kapi "k8s.io/kubernetes/pkg/api" - - quotaapi "github.com/openshift/origin/pkg/quota/apis/quota" - quotaapiv1 "github.com/openshift/origin/pkg/quota/apis/quota/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: quotaapi.GroupName, - VersionPreferenceOrder: []string{quotaapiv1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: quotaapi.AddToScheme, - RootScopedKinds: sets.NewString("ClusterResourceQuota"), - }, - announced.VersionToSchemeFunc{ - quotaapiv1.SchemeGroupVersion.Version: quotaapiv1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/quota/apis/quota/install/install.go b/pkg/quota/apis/quota/install/install.go index 1e8aec3962c0..749e78a61bc2 100644 --- a/pkg/quota/apis/quota/install/install.go +++ b/pkg/quota/apis/quota/install/install.go @@ -1,107 +1,38 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/api/legacy" quotaapi "github.com/openshift/origin/pkg/quota/apis/quota" quotaapiv1 "github.com/openshift/origin/pkg/quota/apis/quota/v1" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{quotaapiv1.LegacySchemeGroupVersion} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.V(4).Infof("No version is registered for group %v", quotaapi.LegacyGroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - glog.V(4).Infof("%v", err) - return - } - if err := enableVersions(externalVersions); err != nil { - glog.V(4).Infof("%v", err) - return - } - - installApiGroup() -} - -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and -// kapi.Registry.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []schema.GroupVersion) error { - addVersionsToScheme(externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor, - } - - if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil -} - -func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { - rootScoped := sets.NewString("ClusterResourceQuota") - ignoredKinds := sets.NewString() - - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) -} - -// interfacesFor returns the default Codec and ResourceVersioner for a given version -// string, or an error if the version is not known. -func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case quotaapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: kapi.Scheme, - MetadataAccessor: accessor, - }, nil - default: - g, _ := kapi.Registry.Group(quotaapi.GroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) - } + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(quotaapi.GroupName, quotaapi.AddToSchemeInCoreGroup, quotaapiv1.AddToSchemeInCoreGroup, + sets.NewString("ClusterResourceQuota"), + kapi.Registry, kapi.Scheme, + ) } -func addVersionsToScheme(externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - quotaapi.AddToSchemeInCoreGroup(kapi.Scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !kapi.Registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case quotaapiv1.LegacySchemeGroupVersion: - quotaapiv1.AddToSchemeInCoreGroup(kapi.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: quotaapi.GroupName, + VersionPreferenceOrder: []string{quotaapiv1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: quotaapi.AddToScheme, + RootScopedKinds: sets.NewString("ClusterResourceQuota"), + }, + announced.VersionToSchemeFunc{ + quotaapiv1.SchemeGroupVersion.Version: quotaapiv1.AddToScheme, + }, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } } diff --git a/pkg/route/apis/route/install/apigroup.go b/pkg/route/apis/route/install/apigroup.go deleted file mode 100644 index b8d7c84b642c..000000000000 --- a/pkg/route/apis/route/install/apigroup.go +++ /dev/null @@ -1,31 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - kapi "k8s.io/kubernetes/pkg/api" - - routeapi "github.com/openshift/origin/pkg/route/apis/route" - routeapiv1 "github.com/openshift/origin/pkg/route/apis/route/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: routeapi.GroupName, - VersionPreferenceOrder: []string{routeapiv1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: routeapi.AddToScheme, - }, - announced.VersionToSchemeFunc{ - routeapiv1.SchemeGroupVersion.Version: routeapiv1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/route/apis/route/install/install.go b/pkg/route/apis/route/install/install.go index 9a77c7b603f0..87843f29a3d9 100644 --- a/pkg/route/apis/route/install/install.go +++ b/pkg/route/apis/route/install/install.go @@ -1,107 +1,34 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/api/legacy" routeapi "github.com/openshift/origin/pkg/route/apis/route" routeapiv1 "github.com/openshift/origin/pkg/route/apis/route/v1" + "k8s.io/apimachinery/pkg/util/sets" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{routeapiv1.LegacySchemeGroupVersion} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.Infof("No version is registered for group %v", routeapi.LegacyGroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - panic(err) - } - if err := enableVersions(externalVersions); err != nil { - panic(err) - } - - installApiGroup() + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(routeapi.GroupName, routeapi.AddToSchemeInCoreGroup, routeapiv1.AddToSchemeInCoreGroup, sets.NewString(), kapi.Registry, kapi.Scheme) } -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and -// kapi.Registry.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []schema.GroupVersion) error { - addVersionsToScheme(externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor, - } - - if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil -} - -func addVersionsToScheme(externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - routeapi.AddToSchemeInCoreGroup(kapi.Scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !kapi.Registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case routeapiv1.LegacySchemeGroupVersion: - routeapiv1.AddToSchemeInCoreGroup(kapi.Scheme) - - default: - glog.Errorf("Version %s is not known, so it will not be added to the Scheme.", v) - continue - } - } -} - -func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { - rootScoped := sets.NewString() - ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) -} - -func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case routeapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: kapi.Scheme, - MetadataAccessor: accessor, - }, nil - - default: - g, _ := kapi.Registry.Group(routeapi.LegacyGroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) +// 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: routeapi.GroupName, + VersionPreferenceOrder: []string{routeapiv1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: routeapi.AddToScheme, + }, + announced.VersionToSchemeFunc{ + routeapiv1.SchemeGroupVersion.Version: routeapiv1.AddToScheme, + }, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } } diff --git a/pkg/sdn/apis/network/install/apigroup.go b/pkg/sdn/apis/network/install/apigroup.go deleted file mode 100644 index acbcf01d2cab..000000000000 --- a/pkg/sdn/apis/network/install/apigroup.go +++ /dev/null @@ -1,33 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - kapi "k8s.io/kubernetes/pkg/api" - - sdnapi "github.com/openshift/origin/pkg/sdn/apis/network" - sdnapiv1 "github.com/openshift/origin/pkg/sdn/apis/network/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: sdnapi.GroupName, - VersionPreferenceOrder: []string{sdnapiv1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: sdnapi.AddToScheme, - RootScopedKinds: sets.NewString("ClusterNetwork", "HostSubnet", "NetNamespace"), - }, - announced.VersionToSchemeFunc{ - sdnapiv1.SchemeGroupVersion.Version: sdnapiv1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/sdn/apis/network/install/install.go b/pkg/sdn/apis/network/install/install.go index dda1662e9a88..8679a267c49f 100644 --- a/pkg/sdn/apis/network/install/install.go +++ b/pkg/sdn/apis/network/install/install.go @@ -1,107 +1,38 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/api/legacy" sdnapi "github.com/openshift/origin/pkg/sdn/apis/network" sdnapiv1 "github.com/openshift/origin/pkg/sdn/apis/network/v1" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{sdnapiv1.LegacySchemeGroupVersion} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.Infof("No version is registered for group %v", sdnapi.LegacyGroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - panic(err) - } - if err := enableVersions(externalVersions); err != nil { - panic(err) - } - - installApiGroup() -} - -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and -// kapi.Registry.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []schema.GroupVersion) error { - addVersionsToScheme(externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor, - } - - if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(sdnapi.GroupName, sdnapi.AddToSchemeInCoreGroup, sdnapiv1.AddToSchemeInCoreGroup, + sets.NewString("ClusterNetwork", "HostSubnet", "NetNamespace"), + kapi.Registry, kapi.Scheme, + ) } -func addVersionsToScheme(externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - sdnapi.AddToSchemeInCoreGroup(kapi.Scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !kapi.Registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case sdnapiv1.LegacySchemeGroupVersion: - sdnapiv1.AddToSchemeInCoreGroup(kapi.Scheme) - - default: - glog.Errorf("Version %s is not known, so it will not be added to the Scheme.", v) - continue - } - } -} - -func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { - rootScoped := sets.NewString("ClusterNetwork", "HostSubnet", "NetNamespace") - ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) -} - -func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case sdnapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: kapi.Scheme, - MetadataAccessor: accessor, - }, nil - - default: - g, _ := kapi.Registry.Group(sdnapi.LegacyGroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) +// 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: sdnapi.GroupName, + VersionPreferenceOrder: []string{sdnapiv1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: sdnapi.AddToScheme, + RootScopedKinds: sets.NewString("ClusterNetwork", "HostSubnet", "NetNamespace"), + }, + announced.VersionToSchemeFunc{ + sdnapiv1.SchemeGroupVersion.Version: sdnapiv1.AddToScheme, + }, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } } diff --git a/pkg/security/apis/security/install/apigroup.go b/pkg/security/apis/security/install/apigroup.go deleted file mode 100644 index ea4740469c15..000000000000 --- a/pkg/security/apis/security/install/apigroup.go +++ /dev/null @@ -1,33 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - kapi "k8s.io/kubernetes/pkg/api" - - securityapi "github.com/openshift/origin/pkg/security/apis/security" - securityapiv1 "github.com/openshift/origin/pkg/security/apis/security/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: securityapi.GroupName, - VersionPreferenceOrder: []string{securityapiv1.SchemeGroupVersion.Version}, - RootScopedKinds: sets.NewString("SecurityContextConstraints"), - AddInternalObjectsToScheme: securityapi.AddToScheme, - }, - announced.VersionToSchemeFunc{ - securityapiv1.SchemeGroupVersion.Version: securityapiv1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/security/apis/security/install/install.go b/pkg/security/apis/security/install/install.go index ea1a39f0065a..2faf9387b71f 100644 --- a/pkg/security/apis/security/install/install.go +++ b/pkg/security/apis/security/install/install.go @@ -1,114 +1,38 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" "k8s.io/apimachinery/pkg/apimachinery/announced" "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/api/legacy" securityapi "github.com/openshift/origin/pkg/security/apis/security" securityapiv1 "github.com/openshift/origin/pkg/security/apis/security/v1" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{securityapiv1.LegacySchemeGroupVersion} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.Infof("No version is registered for group %v", securityapi.LegacyGroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - panic(err) - } - if err := enableVersions(kapi.Registry, kapi.Scheme, externalVersions); err != nil { - panic(err) - } - - installApiGroup() -} - -func InstallIntoDeprecatedV1(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { - enableVersions(registry, scheme, []schema.GroupVersion{securityapiv1.LegacySchemeGroupVersion}) + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(securityapi.GroupName, securityapi.AddToSchemeInCoreGroup, securityapiv1.AddToSchemeInCoreGroup, + sets.NewString("SecurityContextConstraints"), + kapi.Registry, kapi.Scheme, + ) } -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and -// kapi.Registry.RegisterGroup once we have moved enableVersions there. -func enableVersions(registry *registered.APIRegistrationManager, scheme *runtime.Scheme, externalVersions []schema.GroupVersion) error { - addVersionsToScheme(registry, scheme, externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(registry, scheme, externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor(registry, scheme), - } - - if err := registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil -} - -func addVersionsToScheme(registry *registered.APIRegistrationManager, scheme *runtime.Scheme, externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - securityapi.AddToSchemeInCoreGroup(scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case securityapiv1.LegacySchemeGroupVersion: - securityapiv1.AddToSchemeInCoreGroup(scheme) - default: - glog.Errorf("Version %s is not known, so it will not be added to the Scheme.", v) - continue - } - } -} - -func newRESTMapper(registry *registered.APIRegistrationManager, scheme *runtime.Scheme, externalVersions []schema.GroupVersion) meta.RESTMapper { - rootScoped := sets.NewString("SecurityContextConstraints") - ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor(registry, scheme), ignoredKinds, rootScoped, scheme) -} - -func interfacesFor(registry *registered.APIRegistrationManager, scheme *runtime.Scheme) func(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - return func(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case securityapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: scheme, - MetadataAccessor: accessor, - }, nil - - default: - g, _ := registry.Group(securityapi.LegacyGroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) - } +// 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: securityapi.GroupName, + VersionPreferenceOrder: []string{securityapiv1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString("SecurityContextConstraints"), + AddInternalObjectsToScheme: securityapi.AddToScheme, + }, + announced.VersionToSchemeFunc{ + securityapiv1.SchemeGroupVersion.Version: securityapiv1.AddToScheme, + }, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } } diff --git a/pkg/security/legacyclient/scc.go b/pkg/security/legacyclient/scc.go index 54bf2cf4a5ef..96ad02ba3775 100644 --- a/pkg/security/legacyclient/scc.go +++ b/pkg/security/legacyclient/scc.go @@ -11,17 +11,17 @@ import ( oclient "github.com/openshift/origin/pkg/client" securityapi "github.com/openshift/origin/pkg/security/apis/security" - securityapiinstall "github.com/openshift/origin/pkg/security/apis/security/install" securityapiv1 "github.com/openshift/origin/pkg/security/apis/security/v1" ) // if this is being used, we need to be sure that the core API client has our types in the scheme func init() { - securityapiinstall.InstallIntoDeprecatedV1(internalclientscheme.GroupFactoryRegistry, internalclientscheme.Registry, internalclientscheme.Scheme) + securityapi.AddToSchemeInCoreGroup(internalclientscheme.Scheme) securityapi.AddToSchemeInCoreGroup(externalclientscheme.Scheme) securityapi.AddToSchemeInCoreGroup(clientgoscheme.Scheme) securityapiv1.AddToSchemeInCoreGroup(externalclientscheme.Scheme) securityapiv1.AddToSchemeInCoreGroup(clientgoscheme.Scheme) + securityapiv1.AddToSchemeInCoreGroup(internalclientscheme.Scheme) } // New creates a legacy client for SCC access. This only exists for `oc` compatibility with old servers diff --git a/pkg/template/apis/template/install/apigroup.go b/pkg/template/apis/template/install/apigroup.go deleted file mode 100644 index f7881f9c8fe8..000000000000 --- a/pkg/template/apis/template/install/apigroup.go +++ /dev/null @@ -1,33 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - kapi "k8s.io/kubernetes/pkg/api" - - templateapi "github.com/openshift/origin/pkg/template/apis/template" - templateapiv1 "github.com/openshift/origin/pkg/template/apis/template/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: templateapi.GroupName, - VersionPreferenceOrder: []string{templateapiv1.LegacySchemeGroupVersion.Version}, - AddInternalObjectsToScheme: templateapi.AddToScheme, - RootScopedKinds: sets.NewString("BrokerTemplateInstance"), - }, - announced.VersionToSchemeFunc{ - templateapiv1.LegacySchemeGroupVersion.Version: templateapiv1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/template/apis/template/install/install.go b/pkg/template/apis/template/install/install.go index 3981504d2796..a16f8f334f06 100644 --- a/pkg/template/apis/template/install/install.go +++ b/pkg/template/apis/template/install/install.go @@ -1,111 +1,38 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/api/legacy" templateapi "github.com/openshift/origin/pkg/template/apis/template" templateapiv1 "github.com/openshift/origin/pkg/template/apis/template/v1" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{templateapiv1.LegacySchemeGroupVersion} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.Infof("No version is registered for group %v", templateapi.LegacyGroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - panic(err) - } - if err := enableVersions(externalVersions); err != nil { - panic(err) - } - - installApiGroup() + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(templateapi.GroupName, templateapi.AddToSchemeInCoreGroup, templateapiv1.AddToSchemeInCoreGroup, + sets.NewString("BrokerTemplateInstance"), + kapi.Registry, kapi.Scheme, + ) } -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and -// kapi.Registry.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []schema.GroupVersion) error { - addVersionsToScheme(externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor, - } - - if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil -} - -func addVersionsToScheme(externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - templateapi.AddToSchemeInCoreGroup(kapi.Scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !kapi.Registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case templateapiv1.LegacySchemeGroupVersion: - templateapiv1.AddToSchemeInCoreGroup(kapi.Scheme) - - default: - glog.Errorf("Version %s is not known, so it will not be added to the Scheme.", v) - continue - } - } -} - -func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { - worstToBestGroupVersions := []schema.GroupVersion{} - for i := len(externalVersions) - 1; i >= 0; i-- { - worstToBestGroupVersions = append(worstToBestGroupVersions, externalVersions[i]) - } - rootScoped := sets.NewString("BrokerTemplateInstance") - ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) -} - -func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case templateapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: kapi.Scheme, - MetadataAccessor: accessor, - }, nil - - default: - g, _ := kapi.Registry.Group(templateapi.LegacyGroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) +// 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: templateapi.GroupName, + VersionPreferenceOrder: []string{templateapiv1.LegacySchemeGroupVersion.Version}, + AddInternalObjectsToScheme: templateapi.AddToScheme, + RootScopedKinds: sets.NewString("BrokerTemplateInstance"), + }, + announced.VersionToSchemeFunc{ + templateapiv1.LegacySchemeGroupVersion.Version: templateapiv1.AddToScheme, + }, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } } diff --git a/pkg/user/apis/user/install/apigroup.go b/pkg/user/apis/user/install/apigroup.go deleted file mode 100644 index b7a7857870b9..000000000000 --- a/pkg/user/apis/user/install/apigroup.go +++ /dev/null @@ -1,33 +0,0 @@ -package install - -import ( - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - kapi "k8s.io/kubernetes/pkg/api" - - userapi "github.com/openshift/origin/pkg/user/apis/user" - userapiv1 "github.com/openshift/origin/pkg/user/apis/user/v1" -) - -func installApiGroup() { - Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.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: userapi.GroupName, - VersionPreferenceOrder: []string{userapiv1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: userapi.AddToScheme, - RootScopedKinds: sets.NewString("User", "Identity", "UserIdentityMapping", "Group"), - }, - announced.VersionToSchemeFunc{ - userapiv1.SchemeGroupVersion.Version: userapiv1.AddToScheme, - }, - ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { - panic(err) - } -} diff --git a/pkg/user/apis/user/install/install.go b/pkg/user/apis/user/install/install.go index 52ae5b52a68f..e9982842b758 100644 --- a/pkg/user/apis/user/install/install.go +++ b/pkg/user/apis/user/install/install.go @@ -1,107 +1,38 @@ package install import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/api/legacy" userapi "github.com/openshift/origin/pkg/user/apis/user" userapiv1 "github.com/openshift/origin/pkg/user/apis/user/v1" ) -var accessor = meta.NewAccessor() - -// availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []schema.GroupVersion{userapiv1.LegacySchemeGroupVersion} - func init() { - kapi.Registry.RegisterVersions(availableVersions) - externalVersions := []schema.GroupVersion{} - for _, v := range availableVersions { - if kapi.Registry.IsAllowedVersion(v) { - externalVersions = append(externalVersions, v) - } - } - if len(externalVersions) == 0 { - glog.Infof("No version is registered for group %v", userapi.GroupName) - return - } - - if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { - panic(err) - } - if err := enableVersions(externalVersions); err != nil { - panic(err) - } - - installApiGroup() -} - -// TODO: enableVersions should be centralized rather than spread in each API -// group. -// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and -// kapi.Registry.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []schema.GroupVersion) error { - addVersionsToScheme(externalVersions...) - preferredExternalVersion := externalVersions[0] - - groupMeta := apimachinery.GroupMeta{ - GroupVersion: preferredExternalVersion, - GroupVersions: externalVersions, - RESTMapper: newRESTMapper(externalVersions), - SelfLinker: runtime.SelfLinker(accessor), - InterfacesFor: interfacesFor, - } - - if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { - return err - } - return nil + Install(kapi.GroupFactoryRegistry, kapi.Registry, kapi.Scheme) + legacy.InstallLegacy(userapi.GroupName, userapi.AddToSchemeInCoreGroup, userapiv1.AddToSchemeInCoreGroup, + sets.NewString("User", "Identity", "UserIdentityMapping", "Group"), + kapi.Registry, kapi.Scheme, + ) } -func addVersionsToScheme(externalVersions ...schema.GroupVersion) { - // add the internal version to Scheme - userapi.AddToSchemeInCoreGroup(kapi.Scheme) - // add the enabled external versions to Scheme - for _, v := range externalVersions { - if !kapi.Registry.IsEnabledVersion(v) { - glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) - continue - } - switch v { - case userapiv1.LegacySchemeGroupVersion: - userapiv1.AddToSchemeInCoreGroup(kapi.Scheme) - - default: - glog.Errorf("Version %s is not known, so it will not be added to the Scheme.", v) - continue - } - } -} - -func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { - rootScoped := sets.NewString("User", "Identity", "UserIdentityMapping", "Group") - ignoredKinds := sets.NewString() - return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, ignoredKinds, rootScoped, kapi.Scheme) -} - -func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { - switch version { - case userapiv1.LegacySchemeGroupVersion: - return &meta.VersionInterfaces{ - ObjectConvertor: kapi.Scheme, - MetadataAccessor: accessor, - }, nil - - default: - g, _ := kapi.Registry.Group(userapi.LegacyGroupName) - return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) +// 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: userapi.GroupName, + VersionPreferenceOrder: []string{userapiv1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: userapi.AddToScheme, + RootScopedKinds: sets.NewString("User", "Identity", "UserIdentityMapping", "Group"), + }, + announced.VersionToSchemeFunc{ + userapiv1.SchemeGroupVersion.Version: userapiv1.AddToScheme, + }, + ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { + panic(err) } }