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 4e26b00e13..81f0174a70 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 cde0a187b5..ca250a4f43 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 d64bc269b9..a4ceffdb14 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 8ca852dcf3..cd3879ccb6 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 96b85d5491..f0b0dcf79b 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 0d6d2cc115..b2ff84b3e3 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 b472c85b23..790e280641 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 f3b8b349cc..9f1c4d6479 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 ebdab6301f..bb9d882cd9 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 495c3ff513..8be609526c 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 24770e2938..430bc8eca4 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 e287151a24..34da4b93f3 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 1d0c51914c..53b95f6a53 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 2de854846a..7e8cc9c216 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 e24acf6e4a..cf03fd483c 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 1de2437aa5..85c7991bcf 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 710e69d5fc..cf133df6b6 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 c787bfacb9..6e9f47ac7e 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 c5484e0abf..d35d470584 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 c518783796..fdaf7d2c37 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 3e8d95b567..6c645feb63 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 5af1c72e7e..bc4336a439 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 048d40749a..aa28431ece 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 80157c8003..25cee84d2d 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 5ea906a2a7..d5563da883 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 9c2765bdb8..95882e5df5 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 c469eebcd2..5fd3e48bd5 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 e6e3fc43ff..c7ada70f91 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 aefb8032b1..ce52be0a22 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 141a650842..fe64893546 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 7b490d07eb..e44a29e5a9 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 a69e0240b1..42317485c1 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 6cb769431a..ee6ff46445 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 2f0194918e..b31f54afba 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 1f325e16f7..e7ef5bbfcf 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 823be25ffd..d82ce77a54 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 f52f82b6e4..f7e2504b13 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 e9441a9085..2ce3d0758e 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 78927152aa..45fbf98700 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 d5563da883..0000000000 --- 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 5fd3e48bd5..154ed08f55 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 42317485c1..4338531bde 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},