From 8728576236698083f619c4fab06943b174f3fc61 Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Thu, 3 Aug 2017 17:49:35 +0200 Subject: [PATCH 1/3] apimachinery: remove pre-apigroups import prefix logic --- cmd/kubeadm/app/apis/kubeadm/install/install.go | 1 - federation/apis/core/install/install.go | 1 - federation/apis/federation/install/install.go | 1 - pkg/api/install/install.go | 1 - pkg/apis/admission/install/install.go | 1 - pkg/apis/admissionregistration/install/install.go | 1 - 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 - 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 - pkg/apis/policy/install/install.go | 1 - pkg/apis/rbac/install/install.go | 1 - pkg/apis/scheduling/install/install.go | 1 - pkg/apis/settings/install/install.go | 1 - pkg/apis/storage/install/install.go | 1 - .../apis/podtolerationrestriction/install/install.go | 1 - .../apis/resourcequota/install/install.go | 1 - .../pkg/apis/apiextensions/install/install.go | 1 - .../src/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/testapigroup/install/install.go | 1 - .../apiserver/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 +- .../pkg/apis/apiregistration/install/install.go | 1 - .../kube-gen/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 - 37 files changed, 4 insertions(+), 49 deletions(-) diff --git a/cmd/kubeadm/app/apis/kubeadm/install/install.go b/cmd/kubeadm/app/apis/kubeadm/install/install.go index 4e26b00e13d..81f0174a703 100644 --- a/cmd/kubeadm/app/apis/kubeadm/install/install.go +++ b/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/federation/apis/core/install/install.go b/federation/apis/core/install/install.go index cde0a187b56..ca250a4f433 100644 --- a/federation/apis/core/install/install.go +++ b/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/federation/apis/federation/install/install.go b/federation/apis/federation/install/install.go index d64bc269b9a..a4ceffdb140 100644 --- a/federation/apis/federation/install/install.go +++ b/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/pkg/api/install/install.go b/pkg/api/install/install.go index 8ca852dcf31..cd3879ccb6a 100644 --- a/pkg/api/install/install.go +++ b/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/api/core", AddInternalObjectsToScheme: api.AddToScheme, RootScopedKinds: sets.NewString( "Node", diff --git a/pkg/apis/admission/install/install.go b/pkg/apis/admission/install/install.go index 96b85d5491b..f0b0dcf79bd 100644 --- a/pkg/apis/admission/install/install.go +++ b/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/api/admission", RootScopedKinds: sets.NewString("AdmissionReview"), AddInternalObjectsToScheme: admission.AddToScheme, }, diff --git a/pkg/apis/admissionregistration/install/install.go b/pkg/apis/admissionregistration/install/install.go index 0d6d2cc1158..b2ff84b3e31 100644 --- a/pkg/apis/admissionregistration/install/install.go +++ b/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/api/admissionregistration", AddInternalObjectsToScheme: admissionregistration.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/pkg/apis/apps/install/install.go b/pkg/apis/apps/install/install.go index b472c85b23c..790e280641e 100644 --- a/pkg/apis/apps/install/install.go +++ b/pkg/apis/apps/install/install.go @@ -38,7 +38,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: apps.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version, v1beta2.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/api/apps", AddInternalObjectsToScheme: apps.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/pkg/apis/authentication/install/install.go b/pkg/apis/authentication/install/install.go index f3b8b349cc1..9f1c4d64791 100644 --- a/pkg/apis/authentication/install/install.go +++ b/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/api/authentication", RootScopedKinds: sets.NewString("TokenReview"), AddInternalObjectsToScheme: authentication.AddToScheme, }, diff --git a/pkg/apis/authorization/install/install.go b/pkg/apis/authorization/install/install.go index ebdab6301f0..bb9d882cd9f 100644 --- a/pkg/apis/authorization/install/install.go +++ b/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/api/authorization", RootScopedKinds: sets.NewString("SubjectAccessReview", "SelfSubjectAccessReview"), AddInternalObjectsToScheme: authorization.AddToScheme, }, diff --git a/pkg/apis/autoscaling/install/install.go b/pkg/apis/autoscaling/install/install.go index 495c3ff5139..8be609526c3 100644 --- a/pkg/apis/autoscaling/install/install.go +++ b/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/api/autoscaling", AddInternalObjectsToScheme: autoscaling.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/pkg/apis/batch/install/install.go b/pkg/apis/batch/install/install.go index 24770e29387..430bc8eca4a 100644 --- a/pkg/apis/batch/install/install.go +++ b/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/api/batch", AddInternalObjectsToScheme: batch.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/pkg/apis/certificates/install/install.go b/pkg/apis/certificates/install/install.go index e287151a247..34da4b93f3b 100644 --- a/pkg/apis/certificates/install/install.go +++ b/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/api/certificates", RootScopedKinds: sets.NewString("CertificateSigningRequest"), AddInternalObjectsToScheme: certificates.AddToScheme, }, diff --git a/pkg/apis/componentconfig/install/install.go b/pkg/apis/componentconfig/install/install.go index 1d0c51914ce..53b95f6a531 100644 --- a/pkg/apis/componentconfig/install/install.go +++ b/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/pkg/apis/extensions/install/install.go b/pkg/apis/extensions/install/install.go index 2de854846ae..7e8cc9c2169 100644 --- a/pkg/apis/extensions/install/install.go +++ b/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/api/extensions", RootScopedKinds: sets.NewString("PodSecurityPolicy", "ThirdPartyResource"), AddInternalObjectsToScheme: extensions.AddToScheme, }, diff --git a/pkg/apis/imagepolicy/install/install.go b/pkg/apis/imagepolicy/install/install.go index e24acf6e4a4..cf03fd483c2 100644 --- a/pkg/apis/imagepolicy/install/install.go +++ b/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/api/imagepolicy", RootScopedKinds: sets.NewString("ImageReview"), AddInternalObjectsToScheme: imagepolicy.AddToScheme, }, diff --git a/pkg/apis/networking/install/install.go b/pkg/apis/networking/install/install.go index 1de2437aa57..85c7991bcf0 100644 --- a/pkg/apis/networking/install/install.go +++ b/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/api/networking", AddInternalObjectsToScheme: networking.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/pkg/apis/policy/install/install.go b/pkg/apis/policy/install/install.go index 710e69d5fc9..cf133df6b6b 100644 --- a/pkg/apis/policy/install/install.go +++ b/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/api/policy", AddInternalObjectsToScheme: policy.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/pkg/apis/rbac/install/install.go b/pkg/apis/rbac/install/install.go index c787bfacb9d..6e9f47ac7e7 100644 --- a/pkg/apis/rbac/install/install.go +++ b/pkg/apis/rbac/install/install.go @@ -50,7 +50,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r // 1.10 (once all stored objects are at v1): // * remove v1alpha1 VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version, v1.SchemeGroupVersion.Version, v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/api/rbac", RootScopedKinds: sets.NewString("ClusterRole", "ClusterRoleBinding"), AddInternalObjectsToScheme: rbac.AddToScheme, }, diff --git a/pkg/apis/scheduling/install/install.go b/pkg/apis/scheduling/install/install.go index c5484e0abfe..d35d4705843 100644 --- a/pkg/apis/scheduling/install/install.go +++ b/pkg/apis/scheduling/install/install.go @@ -38,7 +38,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: scheduling.GroupName, VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/api/scheduling", RootScopedKinds: sets.NewString("PriorityClass"), AddInternalObjectsToScheme: scheduling.AddToScheme, }, diff --git a/pkg/apis/settings/install/install.go b/pkg/apis/settings/install/install.go index c518783796b..fdaf7d2c37e 100644 --- a/pkg/apis/settings/install/install.go +++ b/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/api/settings", AddInternalObjectsToScheme: settings.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/pkg/apis/storage/install/install.go b/pkg/apis/storage/install/install.go index 3e8d95b567e..6c645feb634 100644 --- a/pkg/apis/storage/install/install.go +++ b/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/api/storage", RootScopedKinds: sets.NewString("StorageClass"), AddInternalObjectsToScheme: storage.AddToScheme, }, diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/install.go b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/install.go index 5af1c72e7ec..bc4336a4396 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/install.go +++ b/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/plugin/pkg/admission/resourcequota/apis/resourcequota/install/install.go b/plugin/pkg/admission/resourcequota/apis/resourcequota/install/install.go index 048d40749a4..aa28431ece7 100644 --- a/plugin/pkg/admission/resourcequota/apis/resourcequota/install/install.go +++ b/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/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/install.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/install.go index 80157c8003b..25cee84d2dc 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/install.go +++ b/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/staging/src/k8s.io/apimachinery/pkg/api/meta/default.go b/staging/src/k8s.io/apimachinery/pkg/api/meta/default.go index 5ea906a2a72..d5563da8837 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/meta/default.go +++ b/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/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/announced_test.go b/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/announced_test.go index 9c2765bdb87..95882e5df55 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/announced_test.go +++ b/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/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go b/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go index c469eebcd23..5fd3e48bd5c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go +++ b/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/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/install.go b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/install.go index e6e3fc43ff0..c7ada70f916 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/install.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/install.go @@ -32,7 +32,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: testapigroup.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/apimachinery/pkg/apis/testapigroup", AddInternalObjectsToScheme: testapigroup.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/install.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/install.go index aefb8032b11..ce52be0a222 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/install.go +++ b/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/staging/src/k8s.io/apiserver/pkg/apis/audit/install/install.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/install/install.go index 141a6508425..fe648935466 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/install/install.go +++ b/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/staging/src/k8s.io/apiserver/pkg/apis/example/install/install.go b/staging/src/k8s.io/apiserver/pkg/apis/example/install/install.go index 7b490d07eb4..e44a29e5a9c 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/install/install.go +++ b/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/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go b/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go index a69e0240b15..42317485c17 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go +++ b/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/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/install.go b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/install.go index 6cb769431ad..ee6ff464455 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/install.go +++ b/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/staging/src/k8s.io/kube-gen/test/apis/testgroup/install/install.go b/staging/src/k8s.io/kube-gen/test/apis/testgroup/install/install.go index 2f0194918e9..b31f54afba7 100644 --- a/staging/src/k8s.io/kube-gen/test/apis/testgroup/install/install.go +++ b/staging/src/k8s.io/kube-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/test/apis/testgroup", AddInternalObjectsToScheme: testgroup.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/install.go b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/install.go index 1f325e16f7d..e7ef5bbfcf1 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/install.go +++ b/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/staging/src/k8s.io/metrics/pkg/apis/metrics/install/install.go b/staging/src/k8s.io/metrics/pkg/apis/metrics/install/install.go index 823be25ffd9..d82ce77a54a 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/install/install.go +++ b/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/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/install.go b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/install.go index f52f82b6e45..f7e2504b133 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/install.go +++ b/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("Fischer", "FischerList"), VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, - ImportPrefix: "k8s.io/sample-apiserver/pkg/apis/wardle", AddInternalObjectsToScheme: wardle.AddToScheme, }, announced.VersionToSchemeFunc{ From 3ab143bc18311ed8b69bcb5122f161413422141b Mon Sep 17 00:00:00 2001 From: Monis Khan Date: Tue, 8 Aug 2017 17:14:42 -0400 Subject: [PATCH 2/3] 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. Signed-off-by: Monis Khan --- test/integration/etcd/etcd_storage_path_test.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/integration/etcd/etcd_storage_path_test.go b/test/integration/etcd/etcd_storage_path_test.go index e9441a9085d..2ce3d0758ea 100644 --- a/test/integration/etcd/etcd_storage_path_test.go +++ b/test/integration/etcd/etcd_storage_path_test.go @@ -438,7 +438,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", @@ -496,14 +496,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 87c9f89cb15b2a64271dbdd292e2ce4abe7ab84a Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Fri, 11 Aug 2017 16:46:19 +0200 Subject: [PATCH 3/3] apimachinery: remove misleading NewDefaultRESTMapper --- .../k8s.io/apimachinery/pkg/api/meta/BUILD | 2 - .../apimachinery/pkg/api/meta/default.go | 46 ------------------- .../apimachinery/announced/group_factory.go | 22 ++++++--- .../pkg/server/genericapiserver_test.go | 5 +- 4 files changed, 19 insertions(+), 56 deletions(-) delete mode 100644 staging/src/k8s.io/apimachinery/pkg/api/meta/default.go diff --git a/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD index 78927152aa5..45fbf98700f 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD @@ -31,7 +31,6 @@ go_test( go_library( name = "go_default_library", srcs = [ - "default.go", "doc.go", "errors.go", "firsthit_restmapper.go", @@ -54,7 +53,6 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", ], ) diff --git a/staging/src/k8s.io/apimachinery/pkg/api/meta/default.go b/staging/src/k8s.io/apimachinery/pkg/api/meta/default.go deleted file mode 100644 index d5563da8837..00000000000 --- a/staging/src/k8s.io/apimachinery/pkg/api/meta/default.go +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package meta - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/sets" -) - -// NewDefaultRESTMapperFromScheme instantiates a DefaultRESTMapper based on types registered in the given scheme. -func NewDefaultRESTMapperFromScheme(defaultGroupVersions []schema.GroupVersion, interfacesFunc VersionInterfacesFunc, - 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 := range scheme.KnownTypes(gv) { - gvk := gv.WithKind(kind) - if ignoredKinds.Has(kind) { - continue - } - scope := RESTScopeNamespace - if rootScoped.Has(kind) { - scope = RESTScopeRoot - } - mapper.Add(gvk, scope) - } - } - return mapper -} diff --git a/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go b/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go index 5fd3e48bd5c..154ed08f551 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go +++ b/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go @@ -172,13 +172,21 @@ func (gmf *GroupMetaFactory) newRESTMapper(scheme *runtime.Scheme, externalVersi ignoredKinds = gmf.GroupArgs.IgnoredKinds } - return meta.NewDefaultRESTMapperFromScheme( - externalVersions, - groupMeta.InterfacesFor, - ignoredKinds, - rootScoped, - scheme, - ) + mapper := meta.NewDefaultRESTMapper(externalVersions, groupMeta.InterfacesFor) + for _, gv := range externalVersions { + for kind := range scheme.KnownTypes(gv) { + if ignoredKinds.Has(kind) { + continue + } + scope := meta.RESTScopeNamespace + if rootScoped.Has(kind) { + scope = meta.RESTScopeRoot + } + mapper.Add(gv.WithKind(kind), scope) + } + } + + return mapper } // Enable enables group versions that are allowed, adds methods to the scheme, etc. diff --git a/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go b/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go index 42317485c17..4338531bdef 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go @@ -167,7 +167,10 @@ func TestInstallAPIGroups(t *testing.T) { }, nil } - mapper := meta.NewDefaultRESTMapperFromScheme([]schema.GroupVersion{gv}, interfacesFor, sets.NewString(), sets.NewString(), scheme) + mapper := meta.NewDefaultRESTMapper([]schema.GroupVersion{gv}, interfacesFor) + for kind := range scheme.KnownTypes(gv) { + mapper.Add(gv.WithKind(kind), meta.RESTScopeNamespace) + } groupMeta := apimachinery.GroupMeta{ GroupVersion: gv, GroupVersions: []schema.GroupVersion{gv},