From 57242e3cbba5da57c599c3fa49ff60642fdb6241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20Tyczy=C5=84ski?= Date: Wed, 15 Jun 2022 14:23:24 +0200 Subject: [PATCH] Clean shutdown of openapi integration tests --- .../apiserver/openapi/openapi_test.go | 18 +++++++----- .../apiserver/openapi/openapiv3_test.go | 28 +++++++++---------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/test/integration/apiserver/openapi/openapi_test.go b/test/integration/apiserver/openapi/openapi_test.go index 32c93234da3..a0a1050ab02 100644 --- a/test/integration/apiserver/openapi/openapi_test.go +++ b/test/integration/apiserver/openapi/openapi_test.go @@ -28,6 +28,7 @@ import ( featuregatetesting "k8s.io/component-base/featuregate/testing" "k8s.io/kube-openapi/pkg/common" "k8s.io/kube-openapi/pkg/validation/spec" + "k8s.io/kubernetes/pkg/controlplane" generated "k8s.io/kubernetes/pkg/generated/openapi" "k8s.io/kubernetes/test/integration/framework" ) @@ -55,9 +56,7 @@ func TestEnablingOpenAPIEnumTypes(t *testing.T) { t.Run(tc.name, func(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.OpenAPIEnums, tc.featureEnabled)() - controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfigWithOptions(&framework.ControlPlaneConfigOptions{}) - controlPlaneConfig.GenericConfig.OpenAPIConfig = framework.DefaultOpenAPIConfig() - controlPlaneConfig.GenericConfig.OpenAPIConfig.GetDefinitions = openapi.GetOpenAPIDefinitionsWithoutDisabledFeatures(func(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { + getDefinitionsFn := openapi.GetOpenAPIDefinitionsWithoutDisabledFeatures(func(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { defs := generated.GetOpenAPIDefinitions(ref) def := defs[typeToAddEnum] // replace protocol to add the would-be enum field. @@ -74,15 +73,20 @@ func TestEnablingOpenAPIEnumTypes(t *testing.T) { return defs }) - instanceConfig, _, closeFn := framework.RunAnAPIServer(controlPlaneConfig) - defer closeFn() + _, kubeConfig, tearDownFn := framework.StartTestServer(t, framework.TestServerSetup{ + ModifyServerConfig: func(config *controlplane.Config) { + config.GenericConfig.OpenAPIConfig = framework.DefaultOpenAPIConfig() + config.GenericConfig.OpenAPIConfig.GetDefinitions = getDefinitionsFn + }, + }) + defer tearDownFn() - rt, err := restclient.TransportFor(instanceConfig.GenericAPIServer.LoopbackClientConfig) + rt, err := restclient.TransportFor(kubeConfig) if err != nil { t.Fatal(err) } - req, err := http.NewRequest("GET", instanceConfig.GenericAPIServer.LoopbackClientConfig.Host+"/openapi/v2", nil) + req, err := http.NewRequest("GET", kubeConfig.Host+"/openapi/v2", nil) if err != nil { t.Fatal(err) } diff --git a/test/integration/apiserver/openapi/openapiv3_test.go b/test/integration/apiserver/openapi/openapiv3_test.go index 6056219d5fc..6683e720dbb 100644 --- a/test/integration/apiserver/openapi/openapiv3_test.go +++ b/test/integration/apiserver/openapi/openapiv3_test.go @@ -46,11 +46,10 @@ import ( func TestOpenAPIV3SpecRoundTrip(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.OpenAPIV3, true)() - controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfigWithOptions(&framework.ControlPlaneConfigOptions{}) - controlPlaneConfig.GenericConfig.OpenAPIConfig = framework.DefaultOpenAPIConfig() - controlPlaneConfig.GenericConfig.OpenAPIV3Config = framework.DefaultOpenAPIV3Config() - instanceConfig, _, closeFn := framework.RunAnAPIServer(controlPlaneConfig) - defer closeFn() + + _, kubeConfig, tearDownFn := framework.StartTestServer(t, framework.TestServerSetup{}) + defer tearDownFn() + paths := []string{ "/apis/apps/v1", "/apis/authentication.k8s.io/v1", @@ -60,12 +59,12 @@ func TestOpenAPIV3SpecRoundTrip(t *testing.T) { } for _, path := range paths { t.Run(path, func(t *testing.T) { - rt, err := restclient.TransportFor(instanceConfig.GenericAPIServer.LoopbackClientConfig) + rt, err := restclient.TransportFor(kubeConfig) if err != nil { t.Fatal(err) } // attempt to fetch and unmarshal - url := instanceConfig.GenericAPIServer.LoopbackClientConfig.Host + "/openapi/v3" + path + url := kubeConfig.Host + "/openapi/v3" + path req, err := http.NewRequest("GET", url, nil) if err != nil { t.Fatal(err) @@ -191,17 +190,16 @@ func TestOpenAPIV3ProtoRoundtrip(t *testing.T) { // See https://github.com/kubernetes/kubernetes/issues/106387 for more details t.Skip("Skipping OpenAPI V3 Proto roundtrip test") defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.OpenAPIV3, true)() - controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfigWithOptions(&framework.ControlPlaneConfigOptions{}) - controlPlaneConfig.GenericConfig.OpenAPIConfig = framework.DefaultOpenAPIConfig() - controlPlaneConfig.GenericConfig.OpenAPIV3Config = framework.DefaultOpenAPIV3Config() - instanceConfig, _, closeFn := framework.RunAnAPIServer(controlPlaneConfig) - defer closeFn() - rt, err := restclient.TransportFor(instanceConfig.GenericAPIServer.LoopbackClientConfig) + + _, kubeConfig, tearDownFn := framework.StartTestServer(t, framework.TestServerSetup{}) + defer tearDownFn() + + rt, err := restclient.TransportFor(kubeConfig) if err != nil { t.Fatal(err) } // attempt to fetch and unmarshal - req, err := http.NewRequest("GET", instanceConfig.GenericAPIServer.LoopbackClientConfig.Host+"/openapi/v3/apis/apps/v1", nil) + req, err := http.NewRequest("GET", kubeConfig.Host+"/openapi/v3/apis/apps/v1", nil) if err != nil { t.Fatal(err) } @@ -220,7 +218,7 @@ func TestOpenAPIV3ProtoRoundtrip(t *testing.T) { t.Fatal(err) } - protoReq, err := http.NewRequest("GET", instanceConfig.GenericAPIServer.LoopbackClientConfig.Host+"/openapi/v3/apis/apps/v1", nil) + protoReq, err := http.NewRequest("GET", kubeConfig.Host+"/openapi/v3/apis/apps/v1", nil) if err != nil { t.Fatal(err) }