diff --git a/tests/integration/create_cluster/private_gce/expected-v1alpha2.yaml b/tests/integration/create_cluster/private_gce/expected-v1alpha2.yaml index 1f11776c91..13d268139b 100644 --- a/tests/integration/create_cluster/private_gce/expected-v1alpha2.yaml +++ b/tests/integration/create_cluster/private_gce/expected-v1alpha2.yaml @@ -52,9 +52,6 @@ spec: - name: us-test1 region: us-test1 type: Private - - name: utility-us-test1 - region: us-test1 - type: Utility topology: bastion: bastionPublicName: bastion.private.example.com diff --git a/upup/pkg/fi/cloudup/new_cluster.go b/upup/pkg/fi/cloudup/new_cluster.go index 6b6b355480..deabac0d76 100644 --- a/upup/pkg/fi/cloudup/new_cluster.go +++ b/upup/pkg/fi/cloudup/new_cluster.go @@ -980,8 +980,6 @@ func setupTopology(opt *NewClusterOptions, cluster *api.Cluster, allZones sets.S cluster.Spec.Subnets[i].Type = api.SubnetTypePrivate } - var utilitySubnets []api.ClusterSubnetSpec - var zoneToSubnetProviderID map[string]string var err error if len(opt.Zones) > 0 && len(opt.UtilitySubnetIDs) > 0 { @@ -1001,22 +999,33 @@ func setupTopology(opt *NewClusterOptions, cluster *api.Cluster, allZones sets.S } } - for _, s := range cluster.Spec.Subnets { - if s.Type == api.SubnetTypeUtility { - continue - } - subnet := api.ClusterSubnetSpec{ - Name: "utility-" + s.Name, - Zone: s.Zone, - Type: api.SubnetTypeUtility, - Region: s.Region, - } - if subnetID, ok := zoneToSubnetProviderID[s.Zone]; ok { - subnet.ProviderID = subnetID - } - utilitySubnets = append(utilitySubnets, subnet) + addUtilitySubnets := true + switch api.CloudProviderID(cluster.Spec.CloudProvider) { + case api.CloudProviderGCE: + // GCE does not need utility subnets + addUtilitySubnets = false + } + + if addUtilitySubnets { + var utilitySubnets []api.ClusterSubnetSpec + + for _, s := range cluster.Spec.Subnets { + if s.Type == api.SubnetTypeUtility { + continue + } + subnet := api.ClusterSubnetSpec{ + Name: "utility-" + s.Name, + Zone: s.Zone, + Type: api.SubnetTypeUtility, + Region: s.Region, + } + if subnetID, ok := zoneToSubnetProviderID[s.Zone]; ok { + subnet.ProviderID = subnetID + } + utilitySubnets = append(utilitySubnets, subnet) + } + cluster.Spec.Subnets = append(cluster.Spec.Subnets, utilitySubnets...) } - cluster.Spec.Subnets = append(cluster.Spec.Subnets, utilitySubnets...) if opt.Bastion { bastionGroup := &api.InstanceGroup{}