diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index 6400fc544ff..8876bcd7718 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -77,7 +77,8 @@ func setupProviderConfig() error { if !framework.TestContext.CloudConfig.MultiZone { managedZones = []string{zone} } - cloudConfig.Provider, err = gcecloud.CreateGCECloud(framework.TestContext.CloudConfig.ApiEndpoint, + + gceCloud, err := gcecloud.CreateGCECloud(framework.TestContext.CloudConfig.ApiEndpoint, framework.TestContext.CloudConfig.ProjectID, region, zone, managedZones, "" /* networkUrl */, "" /* subnetworkUrl */, nil, /* nodeTags */ "" /* nodeInstancePerfix */, nil /* tokenSource */, false /* useMetadataServer */) @@ -85,6 +86,17 @@ func setupProviderConfig() error { return fmt.Errorf("Error building GCE/GKE provider: %v", err) } + cloudConfig.Provider = gceCloud + + if cloudConfig.Zone == "" && framework.TestContext.CloudConfig.MultiZone { + zones, err := gceCloud.GetAllZones() + if err != nil { + return err + } + + cloudConfig.Zone, _ = zones.PopAny() + } + case "aws": if cloudConfig.Zone == "" { return fmt.Errorf("gce-zone must be specified for AWS") diff --git a/test/e2e/framework/test_context.go b/test/e2e/framework/test_context.go index 0883eb128ae..309a372b63c 100644 --- a/test/e2e/framework/test_context.go +++ b/test/e2e/framework/test_context.go @@ -144,7 +144,7 @@ type NodeTestContextType struct { type CloudConfig struct { ApiEndpoint string ProjectID string - Zone string + Zone string // for multizone tests, arbitrarily chosen zone Region string MultiZone bool Cluster string