Merge pull request #32586 from deads2k/api-05-restrict-versions
Automatic merge from submit-queue restrict discoverable versions to those that have resources Prevents versions with no resources from appearing in discovery. @soltysh ptal. I think you have some issues for this, mind wiring them up? ``` kubectl api-versions apps/v1alpha1 authentication.k8s.io/v1beta1 authorization.k8s.io/v1beta1 autoscaling/v1 batch/v1 certificates.k8s.io/v1alpha1 extensions/v1beta1 policy/v1alpha1 rbac.authorization.k8s.io/v1alpha1 storage.k8s.io/v1beta1 v1 ``` Fixes #29998.
This commit is contained in:
		| @@ -408,6 +408,10 @@ func (s *GenericAPIServer) InstallAPIGroup(apiGroupInfo *APIGroupInfo) error { | |||||||
| 		// Add a handler at /apis/<groupName> to enumerate all versions supported by this group. | 		// Add a handler at /apis/<groupName> to enumerate all versions supported by this group. | ||||||
| 		apiVersionsForDiscovery := []unversioned.GroupVersionForDiscovery{} | 		apiVersionsForDiscovery := []unversioned.GroupVersionForDiscovery{} | ||||||
| 		for _, groupVersion := range apiGroupInfo.GroupMeta.GroupVersions { | 		for _, groupVersion := range apiGroupInfo.GroupMeta.GroupVersions { | ||||||
|  | 			// Check the config to make sure that we elide versions that don't have any resources | ||||||
|  | 			if len(apiGroupInfo.VersionedResourcesStorageMap[groupVersion.Version]) == 0 { | ||||||
|  | 				continue | ||||||
|  | 			} | ||||||
| 			apiVersionsForDiscovery = append(apiVersionsForDiscovery, unversioned.GroupVersionForDiscovery{ | 			apiVersionsForDiscovery = append(apiVersionsForDiscovery, unversioned.GroupVersionForDiscovery{ | ||||||
| 				GroupVersion: groupVersion.String(), | 				GroupVersion: groupVersion.String(), | ||||||
| 				Version:      groupVersion.Version, | 				Version:      groupVersion.Version, | ||||||
| @@ -422,6 +426,7 @@ func (s *GenericAPIServer) InstallAPIGroup(apiGroupInfo *APIGroupInfo) error { | |||||||
| 			Versions:         apiVersionsForDiscovery, | 			Versions:         apiVersionsForDiscovery, | ||||||
| 			PreferredVersion: preferedVersionForDiscovery, | 			PreferredVersion: preferedVersionForDiscovery, | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		s.AddAPIGroupForDiscovery(apiGroup) | 		s.AddAPIGroupForDiscovery(apiGroup) | ||||||
| 		apiserver.AddGroupWebService(s.Serializer, s.HandlerContainer, apiPrefix+"/"+apiGroup.Name, apiGroup) | 		apiserver.AddGroupWebService(s.Serializer, s.HandlerContainer, apiPrefix+"/"+apiGroup.Name, apiGroup) | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -37,7 +37,7 @@ import ( | |||||||
| 	apiv1 "k8s.io/kubernetes/pkg/api/v1" | 	apiv1 "k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/apimachinery/registered" | 	"k8s.io/kubernetes/pkg/apimachinery/registered" | ||||||
| 	"k8s.io/kubernetes/pkg/apis/apps" | 	"k8s.io/kubernetes/pkg/apis/apps" | ||||||
| 	appsapi "k8s.io/kubernetes/pkg/apis/apps" | 	appsapiv1alpha1 "k8s.io/kubernetes/pkg/apis/apps/v1alpha1" | ||||||
| 	"k8s.io/kubernetes/pkg/apis/autoscaling" | 	"k8s.io/kubernetes/pkg/apis/autoscaling" | ||||||
| 	autoscalingapiv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1" | 	autoscalingapiv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/apis/batch" | 	"k8s.io/kubernetes/pkg/apis/batch" | ||||||
| @@ -137,7 +137,7 @@ func limitedAPIResourceConfigSource() *genericapiserver.ResourceConfig { | |||||||
| 		extensionsapiv1beta1.SchemeGroupVersion, | 		extensionsapiv1beta1.SchemeGroupVersion, | ||||||
| 		batchapiv1.SchemeGroupVersion, | 		batchapiv1.SchemeGroupVersion, | ||||||
| 		batchapiv2alpha1.SchemeGroupVersion, | 		batchapiv2alpha1.SchemeGroupVersion, | ||||||
| 		appsapi.SchemeGroupVersion, | 		appsapiv1alpha1.SchemeGroupVersion, | ||||||
| 		autoscalingapiv1.SchemeGroupVersion, | 		autoscalingapiv1.SchemeGroupVersion, | ||||||
| 	) | 	) | ||||||
| 	return ret | 	return ret | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Kubernetes Submit Queue
					Kubernetes Submit Queue