From d8fa9f7e8562b29e786c8f7a124f68812e0fbcb0 Mon Sep 17 00:00:00 2001 From: Christian Schlotter Date: Fri, 3 Nov 2023 12:21:39 +0100 Subject: [PATCH] test/conformance: use environment variables KUBETEST_NUMBER_OF_NODES and KUBETEST_GINKGO_NODES to allow overwriting hardcoded kubetest configuration --- test/e2e/k8s_conformance.go | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/test/e2e/k8s_conformance.go b/test/e2e/k8s_conformance.go index 41ab6ee4ce44..e376403b5cb4 100644 --- a/test/e2e/k8s_conformance.go +++ b/test/e2e/k8s_conformance.go @@ -21,6 +21,7 @@ import ( "fmt" "os" "path/filepath" + "strconv" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -56,6 +57,8 @@ type K8SConformanceSpecInput struct { func K8SConformanceSpec(ctx context.Context, inputGetter func() K8SConformanceSpecInput) { const ( kubetestConfigurationVariable = "KUBETEST_CONFIGURATION" + kubetestNumberOfNodesVariable = "KUBETEST_NUMBER_OF_NODES" + kubetestGinkgoNodesVariable = "KUBETEST_GINKGO_NODES" ) var ( specName = "k8s-conformance" @@ -118,15 +121,29 @@ func K8SConformanceSpec(ctx context.Context, inputGetter func() K8SConformanceSp workloadProxy := input.BootstrapClusterProxy.GetWorkloadCluster(ctx, namespace.Name, clusterResources.Cluster.Name) + var err error + + numberOfNodes := int(workerMachineCount) + if s, ok := os.LookupEnv(kubetestNumberOfNodesVariable); ok && s != "" { + numberOfNodes, err = strconv.Atoi(s) + Expect(err).ToNot(HaveOccurred(), "Failed to parse kubetestNumberOfNodesVariable to int") + } + + ginkgoNodes := int(workerMachineCount) + if s, ok := os.LookupEnv(kubetestGinkgoNodesVariable); ok && s != "" { + ginkgoNodes, err = strconv.Atoi(s) + Expect(err).ToNot(HaveOccurred(), "Failed to parse kubetestGinkgoNodesVariable to int") + } + // Start running conformance test suites. - err := kubetest.Run( + err = kubetest.Run( ctx, kubetest.RunInput{ ClusterProxy: workloadProxy, - NumberOfNodes: int(workerMachineCount), + NumberOfNodes: numberOfNodes, ArtifactsDirectory: input.ArtifactFolder, ConfigFilePath: kubetestConfigFilePath, - GinkgoNodes: int(workerMachineCount), + GinkgoNodes: ginkgoNodes, }, ) Expect(err).ToNot(HaveOccurred(), "Failed to run Kubernetes conformance")