Merge pull request #121255 from tukwila/OpenAPIV3-cleanup
Remove GAed feature gates OpenAPIV3
This commit is contained in:
		@@ -1142,8 +1142,6 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	genericfeatures.OpenAPIEnums: {Default: true, PreRelease: featuregate.Beta},
 | 
						genericfeatures.OpenAPIEnums: {Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	genericfeatures.OpenAPIV3: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.29
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	genericfeatures.ServerSideApply: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.29
 | 
						genericfeatures.ServerSideApply: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.29
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	genericfeatures.ServerSideFieldValidation: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.29
 | 
						genericfeatures.ServerSideFieldValidation: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.29
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -43,12 +43,10 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/version"
 | 
						"k8s.io/apimachinery/pkg/version"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/endpoints/discovery"
 | 
						"k8s.io/apiserver/pkg/endpoints/discovery"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/endpoints/discovery/aggregated"
 | 
						"k8s.io/apiserver/pkg/endpoints/discovery/aggregated"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/features"
 | 
					 | 
				
			||||||
	genericregistry "k8s.io/apiserver/pkg/registry/generic"
 | 
						genericregistry "k8s.io/apiserver/pkg/registry/generic"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/registry/rest"
 | 
						"k8s.io/apiserver/pkg/registry/rest"
 | 
				
			||||||
	genericapiserver "k8s.io/apiserver/pkg/server"
 | 
						genericapiserver "k8s.io/apiserver/pkg/server"
 | 
				
			||||||
	serverstorage "k8s.io/apiserver/pkg/server/storage"
 | 
						serverstorage "k8s.io/apiserver/pkg/server/storage"
 | 
				
			||||||
	utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
					 | 
				
			||||||
	"k8s.io/apiserver/pkg/util/webhook"
 | 
						"k8s.io/apiserver/pkg/util/webhook"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -243,7 +241,7 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
 | 
				
			|||||||
				go openapiController.Run(s.GenericAPIServer.StaticOpenAPISpec, s.GenericAPIServer.OpenAPIVersionedService, context.StopCh)
 | 
									go openapiController.Run(s.GenericAPIServer.StaticOpenAPISpec, s.GenericAPIServer.OpenAPIVersionedService, context.StopCh)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if s.GenericAPIServer.OpenAPIV3VersionedService != nil && utilfeature.DefaultFeatureGate.Enabled(features.OpenAPIV3) {
 | 
								if s.GenericAPIServer.OpenAPIV3VersionedService != nil {
 | 
				
			||||||
				openapiv3Controller := openapiv3controller.NewController(s.Informers.Apiextensions().V1().CustomResourceDefinitions())
 | 
									openapiv3Controller := openapiv3controller.NewController(s.Informers.Apiextensions().V1().CustomResourceDefinitions())
 | 
				
			||||||
				go openapiv3Controller.Run(s.GenericAPIServer.OpenAPIV3VersionedService, context.StopCh)
 | 
									go openapiv3Controller.Run(s.GenericAPIServer.OpenAPIV3VersionedService, context.StopCh)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -142,15 +142,6 @@ const (
 | 
				
			|||||||
	// in the spec returned from kube-apiserver.
 | 
						// in the spec returned from kube-apiserver.
 | 
				
			||||||
	OpenAPIEnums featuregate.Feature = "OpenAPIEnums"
 | 
						OpenAPIEnums featuregate.Feature = "OpenAPIEnums"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// owner: @jefftree
 | 
					 | 
				
			||||||
	// kep: https://kep.k8s.io/2896
 | 
					 | 
				
			||||||
	// alpha: v1.23
 | 
					 | 
				
			||||||
	// beta: v1.24
 | 
					 | 
				
			||||||
	// stable: v1.27
 | 
					 | 
				
			||||||
	//
 | 
					 | 
				
			||||||
	// Enables kubernetes to publish OpenAPI v3
 | 
					 | 
				
			||||||
	OpenAPIV3 featuregate.Feature = "OpenAPIV3"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// owner: @caesarxuchao
 | 
						// owner: @caesarxuchao
 | 
				
			||||||
	// alpha: v1.15
 | 
						// alpha: v1.15
 | 
				
			||||||
	// beta: v1.16
 | 
						// beta: v1.16
 | 
				
			||||||
@@ -296,8 +287,6 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	OpenAPIEnums: {Default: true, PreRelease: featuregate.Beta},
 | 
						OpenAPIEnums: {Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	OpenAPIV3: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.29
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	RemainingItemCount: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32
 | 
						RemainingItemCount: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	RemoveSelfLink: {Default: true, PreRelease: featuregate.GA, LockToDefault: true},
 | 
						RemoveSelfLink: {Default: true, PreRelease: featuregate.GA, LockToDefault: true},
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -430,12 +430,10 @@ func (s *GenericAPIServer) PrepareRun() preparedGenericAPIServer {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if s.openAPIV3Config != nil && !s.skipOpenAPIInstallation {
 | 
						if s.openAPIV3Config != nil && !s.skipOpenAPIInstallation {
 | 
				
			||||||
		if utilfeature.DefaultFeatureGate.Enabled(features.OpenAPIV3) {
 | 
					 | 
				
			||||||
		s.OpenAPIV3VersionedService = routes.OpenAPI{
 | 
							s.OpenAPIV3VersionedService = routes.OpenAPI{
 | 
				
			||||||
			V3Config: s.openAPIV3Config,
 | 
								V3Config: s.openAPIV3Config,
 | 
				
			||||||
		}.InstallV3(s.Handler.GoRestfulContainer, s.Handler.NonGoRestfulMux)
 | 
							}.InstallV3(s.Handler.GoRestfulContainer, s.Handler.NonGoRestfulMux)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	s.installHealthz()
 | 
						s.installHealthz()
 | 
				
			||||||
	s.installLivez()
 | 
						s.installLivez()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -407,7 +407,7 @@ func (s *APIAggregator) PrepareRun() (preparedAPIAggregator, error) {
 | 
				
			|||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if s.openAPIV3Config != nil && utilfeature.DefaultFeatureGate.Enabled(genericfeatures.OpenAPIV3) {
 | 
						if s.openAPIV3Config != nil {
 | 
				
			||||||
		s.GenericAPIServer.AddPostStartHookOrDie("apiservice-openapiv3-controller", func(context genericapiserver.PostStartHookContext) error {
 | 
							s.GenericAPIServer.AddPostStartHookOrDie("apiservice-openapiv3-controller", func(context genericapiserver.PostStartHookContext) error {
 | 
				
			||||||
			go s.openAPIV3AggregationController.Run(context.StopCh)
 | 
								go s.openAPIV3AggregationController.Run(context.StopCh)
 | 
				
			||||||
			return nil
 | 
								return nil
 | 
				
			||||||
@@ -447,7 +447,7 @@ func (s *APIAggregator) PrepareRun() (preparedAPIAggregator, error) {
 | 
				
			|||||||
		s.openAPIAggregationController = openapicontroller.NewAggregationController(&specDownloader, openAPIAggregator)
 | 
							s.openAPIAggregationController = openapicontroller.NewAggregationController(&specDownloader, openAPIAggregator)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if s.openAPIV3Config != nil && utilfeature.DefaultFeatureGate.Enabled(genericfeatures.OpenAPIV3) {
 | 
						if s.openAPIV3Config != nil {
 | 
				
			||||||
		specDownloaderV3 := openapiv3aggregator.NewDownloader()
 | 
							specDownloaderV3 := openapiv3aggregator.NewDownloader()
 | 
				
			||||||
		openAPIV3Aggregator, err := openapiv3aggregator.BuildAndRegisterAggregator(
 | 
							openAPIV3Aggregator, err := openapiv3aggregator.BuildAndRegisterAggregator(
 | 
				
			||||||
			specDownloaderV3,
 | 
								specDownloaderV3,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,7 +28,6 @@ import (
 | 
				
			|||||||
	utilerrors "k8s.io/apimachinery/pkg/util/errors"
 | 
						utilerrors "k8s.io/apimachinery/pkg/util/errors"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/admission"
 | 
						"k8s.io/apiserver/pkg/admission"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/endpoints/openapi"
 | 
						"k8s.io/apiserver/pkg/endpoints/openapi"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/features"
 | 
					 | 
				
			||||||
	genericapiserver "k8s.io/apiserver/pkg/server"
 | 
						genericapiserver "k8s.io/apiserver/pkg/server"
 | 
				
			||||||
	genericoptions "k8s.io/apiserver/pkg/server/options"
 | 
						genericoptions "k8s.io/apiserver/pkg/server/options"
 | 
				
			||||||
	utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
						utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
				
			||||||
@@ -139,11 +138,9 @@ func (o *WardleServerOptions) Config() (*apiserver.Config, error) {
 | 
				
			|||||||
	serverConfig.OpenAPIConfig.Info.Title = "Wardle"
 | 
						serverConfig.OpenAPIConfig.Info.Title = "Wardle"
 | 
				
			||||||
	serverConfig.OpenAPIConfig.Info.Version = "0.1"
 | 
						serverConfig.OpenAPIConfig.Info.Version = "0.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if utilfeature.DefaultFeatureGate.Enabled(features.OpenAPIV3) {
 | 
					 | 
				
			||||||
	serverConfig.OpenAPIV3Config = genericapiserver.DefaultOpenAPIV3Config(sampleopenapi.GetOpenAPIDefinitions, openapi.NewDefinitionNamer(apiserver.Scheme))
 | 
						serverConfig.OpenAPIV3Config = genericapiserver.DefaultOpenAPIV3Config(sampleopenapi.GetOpenAPIDefinitions, openapi.NewDefinitionNamer(apiserver.Scheme))
 | 
				
			||||||
	serverConfig.OpenAPIV3Config.Info.Title = "Wardle"
 | 
						serverConfig.OpenAPIV3Config.Info.Title = "Wardle"
 | 
				
			||||||
	serverConfig.OpenAPIV3Config.Info.Version = "0.1"
 | 
						serverConfig.OpenAPIV3Config.Info.Version = "0.1"
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err := o.RecommendedOptions.ApplyTo(serverConfig); err != nil {
 | 
						if err := o.RecommendedOptions.ApplyTo(serverConfig); err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,11 +27,8 @@ import (
 | 
				
			|||||||
	"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
 | 
						"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
 | 
				
			||||||
	"k8s.io/apiextensions-apiserver/test/integration/fixtures"
 | 
						"k8s.io/apiextensions-apiserver/test/integration/fixtures"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	genericfeatures "k8s.io/apiserver/pkg/features"
 | 
					 | 
				
			||||||
	utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
					 | 
				
			||||||
	"k8s.io/client-go/dynamic"
 | 
						"k8s.io/client-go/dynamic"
 | 
				
			||||||
	kubernetes "k8s.io/client-go/kubernetes"
 | 
						kubernetes "k8s.io/client-go/kubernetes"
 | 
				
			||||||
	featuregatetesting "k8s.io/component-base/featuregate/testing"
 | 
					 | 
				
			||||||
	"k8s.io/kube-openapi/pkg/spec3"
 | 
						"k8s.io/kube-openapi/pkg/spec3"
 | 
				
			||||||
	apiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
 | 
						apiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
 | 
				
			||||||
	"k8s.io/kubernetes/test/integration/framework"
 | 
						"k8s.io/kubernetes/test/integration/framework"
 | 
				
			||||||
@@ -42,7 +39,6 @@ const statusSchemaName = "io.k8s.apimachinery.pkg.apis.meta.v1.Status"
 | 
				
			|||||||
const objectMetaSchemaName = "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 | 
					const objectMetaSchemaName = "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestOpenAPIV3MultipleCRDsSameGV(t *testing.T) {
 | 
					func TestOpenAPIV3MultipleCRDsSameGV(t *testing.T) {
 | 
				
			||||||
	defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.OpenAPIV3, true)()
 | 
					 | 
				
			||||||
	server, err := apiservertesting.StartTestServer(t, apiservertesting.NewDefaultTestServerOptions(), nil, framework.SharedEtcd())
 | 
						server, err := apiservertesting.StartTestServer(t, apiservertesting.NewDefaultTestServerOptions(), nil, framework.SharedEtcd())
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		t.Fatal(err)
 | 
							t.Fatal(err)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,12 +31,9 @@ import (
 | 
				
			|||||||
	apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
 | 
						apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
 | 
				
			||||||
	"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
 | 
						"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
 | 
				
			||||||
	"k8s.io/apiextensions-apiserver/test/integration/fixtures"
 | 
						"k8s.io/apiextensions-apiserver/test/integration/fixtures"
 | 
				
			||||||
	genericfeatures "k8s.io/apiserver/pkg/features"
 | 
					 | 
				
			||||||
	utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
					 | 
				
			||||||
	"k8s.io/client-go/dynamic"
 | 
						"k8s.io/client-go/dynamic"
 | 
				
			||||||
	kubernetes "k8s.io/client-go/kubernetes"
 | 
						kubernetes "k8s.io/client-go/kubernetes"
 | 
				
			||||||
	restclient "k8s.io/client-go/rest"
 | 
						restclient "k8s.io/client-go/rest"
 | 
				
			||||||
	featuregatetesting "k8s.io/component-base/featuregate/testing"
 | 
					 | 
				
			||||||
	"k8s.io/kube-openapi/pkg/handler3"
 | 
						"k8s.io/kube-openapi/pkg/handler3"
 | 
				
			||||||
	"k8s.io/kube-openapi/pkg/spec3"
 | 
						"k8s.io/kube-openapi/pkg/spec3"
 | 
				
			||||||
	apiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
 | 
						apiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
 | 
				
			||||||
@@ -50,8 +47,6 @@ func TestOpenAPIV3SpecRoundTrip(t *testing.T) {
 | 
				
			|||||||
	ctx, cancel := context.WithCancel(ctx)
 | 
						ctx, cancel := context.WithCancel(ctx)
 | 
				
			||||||
	defer cancel()
 | 
						defer cancel()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.OpenAPIV3, true)()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	_, kubeConfig, tearDownFn := framework.StartTestServer(ctx, t, framework.TestServerSetup{})
 | 
						_, kubeConfig, tearDownFn := framework.StartTestServer(ctx, t, framework.TestServerSetup{})
 | 
				
			||||||
	defer tearDownFn()
 | 
						defer tearDownFn()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -105,7 +100,6 @@ func TestOpenAPIV3SpecRoundTrip(t *testing.T) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestAddRemoveGroupVersion(t *testing.T) {
 | 
					func TestAddRemoveGroupVersion(t *testing.T) {
 | 
				
			||||||
	defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.OpenAPIV3, true)()
 | 
					 | 
				
			||||||
	server, err := apiservertesting.StartTestServer(t, apiservertesting.NewDefaultTestServerOptions(), nil, framework.SharedEtcd())
 | 
						server, err := apiservertesting.StartTestServer(t, apiservertesting.NewDefaultTestServerOptions(), nil, framework.SharedEtcd())
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		t.Fatal(err)
 | 
							t.Fatal(err)
 | 
				
			||||||
@@ -199,8 +193,6 @@ func TestOpenAPIV3ProtoRoundtrip(t *testing.T) {
 | 
				
			|||||||
	ctx, cancel := context.WithCancel(ctx)
 | 
						ctx, cancel := context.WithCancel(ctx)
 | 
				
			||||||
	defer cancel()
 | 
						defer cancel()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.OpenAPIV3, true)()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	_, kubeConfig, tearDownFn := framework.StartTestServer(ctx, t, framework.TestServerSetup{})
 | 
						_, kubeConfig, tearDownFn := framework.StartTestServer(ctx, t, framework.TestServerSetup{})
 | 
				
			||||||
	defer tearDownFn()
 | 
						defer tearDownFn()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user