@@ -34,13 +34,15 @@ var (
3434 teardownDriver = flag .Bool ("teardown-driver" , true , "teardown the driver after the e2e test" )
3535 bringupCluster = flag .Bool ("bringup-cluster" , true , "build kubernetes and bringup a cluster" )
3636 gceZone = flag .String ("gce-zone" , "" , "zone that the gce k8s cluster is created/found in" )
37+ gceRegion = flag .String ("gce-region" , "" , "region that gke regional cluster should be created in" )
3738 kubeVersion = flag .String ("kube-version" , "" , "version of Kubernetes to download and use for the cluster" )
3839 testVersion = flag .String ("test-version" , "" , "version of Kubernetes to download and use for tests" )
3940 kubeFeatureGates = flag .String ("kube-feature-gates" , "" , "feature gates to set on new kubernetes cluster" )
4041 localK8sDir = flag .String ("local-k8s-dir" , "" , "local prebuilt kubernetes/kubernetes directory to use for cluster and test binaries" )
41- deploymentStrat = flag .String ("deployment-strategy" , "" , "choose between deploying on gce or gke" )
42+ deploymentStrat = flag .String ("deployment-strategy" , "gce " , "choose between deploying on gce or gke" )
4243 gkeClusterVer = flag .String ("gke-cluster-version" , "" , "version of Kubernetes master and node for gke" )
4344 numNodes = flag .Int ("num-nodes" , - 1 , "the number of nodes in the test cluster" )
45+
4446 // Test infrastructure flags
4547 boskosResourceType = flag .String ("boskos-resource-type" , "gce-project" , "name of the boskos resource type to reserve" )
4648 storageClassFile = flag .String ("storageclass-file" , "" , "name of storageclass yaml file to use for test relative to test/k8s-integration/config" )
@@ -78,7 +80,12 @@ func main() {
7880 ensureVariable (saFile , true , "service-account-file is a required flag" )
7981 ensureVariable (deployOverlayName , true , "deploy-overlay-name is a required flag" )
8082 ensureVariable (testFocus , true , "test-focus is a required flag" )
81- ensureVariable (gceZone , true , "gce-zone is a required flag" )
83+
84+ if len (* gceRegion ) != 0 {
85+ ensureVariable (gceZone , false , "gce-zone and gce-region cannot both be set" )
86+ } else {
87+ ensureVariable (gceZone , true , "One of gce-zone or gce-region must be set" )
88+ }
8289
8390 if * migrationTest {
8491 ensureVariable (storageClassFile , false , "storage-class-file and migration-test cannot both be set" )
@@ -90,12 +97,6 @@ func main() {
9097 ensureVariable (kubeFeatureGates , false , "kube-feature-gates set but not bringing up new cluster" )
9198 }
9299
93- if * bringupCluster || * teardownCluster {
94- ensureVariable (deploymentStrat , true , "Must set the deployment strategy if bringing up or down cluster." )
95- } else {
96- ensureVariable (deploymentStrat , false , "Cannot set the deployment strategy if not bringing up or down cluster." )
97- }
98-
99100 if * deploymentStrat == "gke" {
100101 ensureFlag (migrationTest , false , "Cannot set deployment strategy to 'gke' for migration tests." )
101102 ensureVariable (kubeVersion , false , "Cannot set kube-version when using deployment strategy 'gke'. Use gke-cluster-version." )
@@ -104,6 +105,9 @@ func main() {
104105 if len (* localK8sDir ) == 0 {
105106 ensureVariable (testVersion , true , "Must set either test-version or local k8s dir when using deployment strategy 'gke'." )
106107 }
108+ } else if * deploymentStrat == "gce" {
109+ ensureVariable (gceRegion , false , "regional clusters not supported for 'gce' deployment" )
110+ ensureVariable (gceZone , true , "gce-zone required for 'gce' deployment" )
107111 }
108112
109113 if len (* localK8sDir ) != 0 {
@@ -229,20 +233,14 @@ func handle() error {
229233 testDir = k8sDir
230234 }
231235
232- var cloudProviderArgs []string
233-
234236 // Create a cluster either through GKE or GCE
235237 if * bringupCluster {
236238 var err error = nil
237239 switch * deploymentStrat {
238240 case "gce" :
239241 err = clusterUpGCE (k8sDir , * gceZone , * numNodes )
240242 case "gke" :
241- err = clusterUpGKE (* gceZone , * numNodes )
242- cloudProviderArgs , err = getGKEKubeTestArgs ()
243- if err != nil {
244- return fmt .Errorf ("failed to build GKE kubetest args: %v" , err )
245- }
243+ err = clusterUpGKE (* gceZone , * gceRegion , * numNodes )
246244 default :
247245 err = fmt .Errorf ("deployment-strategy must be set to 'gce' or 'gke', but is: %s" , * deploymentStrat )
248246 }
@@ -261,7 +259,7 @@ func handle() error {
261259 klog .Errorf ("failed to cluster down: %v" , err )
262260 }
263261 case "gke" :
264- err := clusterDownGKE (* gceZone )
262+ err := clusterDownGKE (* gceZone , * gceRegion )
265263 if err != nil {
266264 klog .Errorf ("failed to cluster down: %v" , err )
267265 }
@@ -285,6 +283,15 @@ func handle() error {
285283 return fmt .Errorf ("failed to install CSI Driver: %v" , err )
286284 }
287285
286+ var cloudProviderArgs []string
287+ switch * deploymentStrat {
288+ case "gke" :
289+ cloudProviderArgs , err = getGKEKubeTestArgs (* gceZone , * gceRegion )
290+ if err != nil {
291+ return fmt .Errorf ("failed to build GKE kubetest args: %v" , err )
292+ }
293+ }
294+
288295 // Run the tests using the testDir kubernetes
289296 if len (* storageClassFile ) != 0 {
290297 err = runCSITests (pkgDir , testDir , * testFocus , * storageClassFile , cloudProviderArgs )
@@ -348,6 +355,7 @@ func runTestsWithConfig(testDir, testFocus, testConfigArg string, cloudProviderA
348355 kubeTestArgs := []string {
349356 "--test" ,
350357 "--ginkgo-parallel" ,
358+ "--check-version-skew=false" ,
351359 fmt .Sprintf ("--test_args=%s" , testArgs ),
352360 }
353361
0 commit comments