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")