From 760a825f7cbd071c5cf4fa5249fc311ec5a5d699 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Tue, 2 Apr 2019 01:05:54 +0300 Subject: [PATCH] e2e-test-framework: decouple the aggregated clientset from the framework Remove usage of the aggregated clientset in the e2e testing framework itself. We have one test that consumes the clientset in the suite and it's in test/e2e/apimachinery/aggregator.go, which was recently promoted to conformance in 8101b86. This test now obtains a local copy of the aggregated clientset. The suite still has to compile the internal client in. One possible solution here is to move this test in a separate suite, yet it's unclear of how to tackle the problem now that the test has to run as part of the conformance suite. --- test/e2e/apimachinery/aggregator.go | 19 ++++++++++++++----- test/e2e/framework/BUILD | 1 - test/e2e/framework/framework.go | 6 +----- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/test/e2e/apimachinery/aggregator.go b/test/e2e/apimachinery/aggregator.go index 6a169e0288f..5ef433d778b 100644 --- a/test/e2e/apimachinery/aggregator.go +++ b/test/e2e/apimachinery/aggregator.go @@ -25,7 +25,7 @@ import ( "time" apps "k8s.io/api/apps/v1" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" rbacv1beta1 "k8s.io/api/rbac/v1beta1" apierrs "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -74,7 +74,17 @@ var _ = SIGDescribe("Aggregator", func() { ginkgo.BeforeEach(func() { c = f.ClientSet ns = f.Namespace.Name - aggrclient = f.AggregatorClient + + if aggrclient == nil { + config, err := framework.LoadConfig() + if err != nil { + framework.Failf("could not load config: %v", err) + } + aggrclient, err = aggregatorclient.NewForConfig(config) + if err != nil { + framework.Failf("could not create aggregator client: %v", err) + } + } }) /* @@ -84,7 +94,7 @@ var _ = SIGDescribe("Aggregator", func() { */ framework.ConformanceIt("Should be able to support the 1.10 Sample API Server using the current Aggregator", func() { // Testing a 1.10 version of the sample-apiserver - TestSampleAPIServer(f, imageutils.GetE2EImage(imageutils.APIServer)) + TestSampleAPIServer(f, aggrclient, imageutils.GetE2EImage(imageutils.APIServer)) }) }) @@ -104,11 +114,10 @@ func cleanTest(client clientset.Interface, aggrclient *aggregatorclient.Clientse // TestSampleAPIServer is a basic test if the sample-apiserver code from 1.10 and compiled against 1.10 // will work on the current Aggregator/API-Server. -func TestSampleAPIServer(f *framework.Framework, image string) { +func TestSampleAPIServer(f *framework.Framework, aggrclient *aggregatorclient.Clientset, image string) { ginkgo.By("Registering the sample API server.") client := f.ClientSet restClient := client.Discovery().RESTClient() - aggrclient := f.AggregatorClient namespace := f.Namespace.Name context := setupServerCert(namespace, "sample-api") diff --git a/test/e2e/framework/BUILD b/test/e2e/framework/BUILD index a8b6bc7ab1b..84e11ce9ada 100644 --- a/test/e2e/framework/BUILD +++ b/test/e2e/framework/BUILD @@ -116,7 +116,6 @@ go_library( "//staging/src/k8s.io/client-go/tools/watch:go_default_library", "//staging/src/k8s.io/client-go/util/retry:go_default_library", "//staging/src/k8s.io/component-base/cli/flag:go_default_library", - "//staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset:go_default_library", "//test/e2e/framework/ginkgowrapper:go_default_library", "//test/e2e/framework/metrics:go_default_library", "//test/e2e/framework/testfiles:go_default_library", diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index eb8730f513f..07b343b515f 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -46,7 +46,6 @@ import ( "k8s.io/client-go/rest" "k8s.io/client-go/restmapper" scaleclient "k8s.io/client-go/scale" - aggregatorclient "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset" "k8s.io/kubernetes/test/e2e/framework/metrics" testutils "k8s.io/kubernetes/test/utils" @@ -75,8 +74,7 @@ type Framework struct { ClientSet clientset.Interface KubemarkExternalClusterClientSet clientset.Interface - AggregatorClient *aggregatorclient.Clientset - DynamicClient dynamic.Interface + DynamicClient dynamic.Interface ScalesGetter scaleclient.ScalesGetter @@ -182,8 +180,6 @@ func (f *Framework) BeforeEach() { } f.ClientSet, err = clientset.NewForConfig(config) ExpectNoError(err) - f.AggregatorClient, err = aggregatorclient.NewForConfig(config) - ExpectNoError(err) f.DynamicClient, err = dynamic.NewForConfig(config) ExpectNoError(err) // node.k8s.io is based on CRD, which is served only as JSON