Skip to content

Commit 7a17e40

Browse files
authored
GKE Multi-Subnet additional_ip_ranges_config: Change test subnet and network name from main to msc_main (#14839)
1 parent 3edb536 commit 7a17e40

File tree

1 file changed

+88
-62
lines changed

1 file changed

+88
-62
lines changed

mmv1/third_party/terraform/services/container/resource_container_cluster_test.go.tmpl

Lines changed: 88 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -14323,17 +14323,85 @@ resource "google_container_cluster" "primary" {
1432314323
`, name, networkName, subnetworkName, config)
1432414324
}
1432514325

14326+
type subnetRangeInfo struct {
14327+
SubnetName string
14328+
RangeNames []string
14329+
}
14330+
14331+
func bootstrapAdditionalIpRangesNetworkConfig(t *testing.T, name string, additionalSubnetCount int, secondaryRangeCount int) (string, []subnetRangeInfo) {
14332+
sri := []subnetRangeInfo{}
14333+
14334+
// We create our network to ensure no range collisions.
14335+
networkName := acctest.BootstrapSharedTestNetwork(t, fmt.Sprintf("%s-network", name))
14336+
mainSubnet := acctest.BootstrapSubnetWithOverrides(t, fmt.Sprintf("%s-subnet-main", name), networkName, map[string]interface{}{
14337+
"ipCidrRange": "10.2.0.0/24",
14338+
"secondaryIpRanges": []map[string]interface{}{
14339+
{
14340+
"rangeName": "pods",
14341+
"ipCidrRange": "10.3.0.0/16",
14342+
},
14343+
{
14344+
"rangeName": "services",
14345+
"ipCidrRange": "10.4.0.0/16",
14346+
},
14347+
},
14348+
})
14349+
14350+
si := subnetRangeInfo{
14351+
SubnetName: mainSubnet,
14352+
RangeNames: []string{"pods"},
14353+
}
14354+
sri = append(sri, si)
14355+
14356+
cumulativeRangeIndex := 0
14357+
for subnetIndex := 0; subnetIndex < additionalSubnetCount; subnetIndex++ {
14358+
ranges := []map[string]interface{}{}
14359+
rangeNames := []string{}
14360+
for rangeIndex := 0; rangeIndex < secondaryRangeCount; rangeIndex++ {
14361+
rangeName := fmt.Sprintf("range-%d", cumulativeRangeIndex)
14362+
r := map[string]interface{}{
14363+
"rangeName": rangeName,
14364+
"ipCidrRange": fmt.Sprintf("10.0.%d.0/24", cumulativeRangeIndex),
14365+
}
14366+
rangeNames = append(rangeNames, rangeName)
14367+
ranges = append(ranges, r)
14368+
cumulativeRangeIndex++
14369+
}
14370+
14371+
subnetOverrides := map[string]interface{}{
14372+
"ipCidrRange": fmt.Sprintf("10.1.%d.0/24", subnetIndex),
14373+
"secondaryIpRanges": ranges,
14374+
}
14375+
14376+
subnetName := fmt.Sprintf("%s-subnet-add-%d", name, subnetIndex)
14377+
acctest.BootstrapSubnetWithOverrides(t, subnetName, networkName, subnetOverrides)
14378+
14379+
si := subnetRangeInfo{
14380+
SubnetName: subnetName,
14381+
RangeNames: rangeNames,
14382+
}
14383+
14384+
sri = append(sri, si)
14385+
}
14386+
14387+
return networkName, sri
14388+
}
14389+
1432614390
func TestAccContainerCluster_additional_ip_ranges_config_on_create(t *testing.T) {
1432714391
t.Parallel()
1432814392

14393+
testName := "gke-msc"
14394+
network, sri := bootstrapAdditionalIpRangesNetworkConfig(t, testName, 2, 2)
14395+
14396+
1432914397
clusterName := fmt.Sprintf("tf-test-cluster-%s", acctest.RandString(t, 10))
1433014398
acctest.VcrTest(t, resource.TestCase{
1433114399
PreCheck: func() { acctest.AccTestPreCheck(t) },
1433214400
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
1433314401
CheckDestroy: testAccCheckContainerClusterDestroyProducer(t),
1433414402
Steps: []resource.TestStep{
1433514403
{
14336-
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, 2, 2),
14404+
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, network, sri),
1433714405
},
1433814406
{
1433914407
ResourceName: "google_container_cluster.primary",
@@ -14349,14 +14417,17 @@ func TestAccContainerCluster_additional_ip_ranges_config_on_create(t *testing.T)
1434914417
func TestAccContainerCluster_additional_ip_ranges_config_on_update(t *testing.T) {
1435014418
t.Parallel()
1435114419

14420+
testName := "gke-msc-update"
14421+
network, sri := bootstrapAdditionalIpRangesNetworkConfig(t, testName, 2, 2)
14422+
1435214423
clusterName := fmt.Sprintf("tf-test-cluster-%s", acctest.RandString(t, 10))
1435314424
acctest.VcrTest(t, resource.TestCase{
1435414425
PreCheck: func() { acctest.AccTestPreCheck(t) },
1435514426
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
1435614427
CheckDestroy: testAccCheckContainerClusterDestroyProducer(t),
1435714428
Steps: []resource.TestStep{
1435814429
{
14359-
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, 0, 0),
14430+
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, network, sri),
1436014431
},
1436114432
{
1436214433
ResourceName: "google_container_cluster.primary",
@@ -14366,7 +14437,7 @@ func TestAccContainerCluster_additional_ip_ranges_config_on_update(t *testing.T)
1436614437
Check: resource.TestCheckResourceAttrSet("google_container_cluster.primary", "node_pool.0.network_config.subnetwork"),
1436714438
},
1436814439
{
14369-
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, 1, 1),
14440+
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, network, sri[:len(sri)-1]),
1437014441
},
1437114442
{
1437214443
ResourceName: "google_container_cluster.primary",
@@ -14375,7 +14446,7 @@ func TestAccContainerCluster_additional_ip_ranges_config_on_update(t *testing.T)
1437514446
ImportStateVerifyIgnore: []string{"deletion_protection"},
1437614447
},
1437714448
{
14378-
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, 0, 0),
14449+
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, network, sri[:1]),
1437914450
},
1438014451
{
1438114452
ResourceName: "google_container_cluster.primary",
@@ -14384,7 +14455,7 @@ func TestAccContainerCluster_additional_ip_ranges_config_on_update(t *testing.T)
1438414455
ImportStateVerifyIgnore: []string{"deletion_protection"},
1438514456
},
1438614457
{
14387-
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, 2, 2),
14458+
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, network, sri),
1438814459
},
1438914460
{
1439014461
ResourceName: "google_container_cluster.primary",
@@ -14393,7 +14464,7 @@ func TestAccContainerCluster_additional_ip_ranges_config_on_update(t *testing.T)
1439314464
ImportStateVerifyIgnore: []string{"deletion_protection"},
1439414465
},
1439514466
{
14396-
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, 0, 0),
14467+
Config: testAccContainerCluster_additional_ip_ranges_config(clusterName, network, sri[:1]),
1439714468
},
1439814469
{
1439914470
ResourceName: "google_container_cluster.primary",
@@ -14445,76 +14516,31 @@ func TestAccContainerCluster_withAnonymousAuthenticationConfig(t *testing.T) {
1444514516
})
1444614517
}
1444714518

14448-
func testAccContainerCluster_additional_ip_ranges_config(name string, additionalSubnetCount int, secondaryRangeCount int) string {
14449-
var subnetStr string
14519+
func testAccContainerCluster_additional_ip_ranges_config(clusterName string, networkName string, sri []subnetRangeInfo) string {
1445014520
var additionalIpRangesStr string
14451-
cumulativeRangeIndex := 0
14452-
for subnetIndex := 0; subnetIndex < additionalSubnetCount; subnetIndex++ {
14453-
var secondaryRangeStr string
14521+
14522+
for _, si := range sri[1:] {
1445414523
var podIpv4RangeStr string
14455-
for rangeIndex := 0; rangeIndex < secondaryRangeCount; rangeIndex++ {
14456-
secondaryRangeStr += fmt.Sprintf(`
14457-
secondary_ip_range {
14458-
range_name = "range-%d"
14459-
ip_cidr_range = "10.0.%d.0/24"
14460-
}
14461-
`, cumulativeRangeIndex, cumulativeRangeIndex)
14462-
14463-
podIpv4RangeStr += fmt.Sprintf("google_compute_subnetwork.extra_%d.secondary_ip_range[%d].range_name", subnetIndex, rangeIndex)
14464-
if rangeIndex != secondaryRangeCount - 1 {
14524+
for i, rn := range si.RangeNames {
14525+
podIpv4RangeStr += fmt.Sprintf("\"%s\"", rn)
14526+
if i != len(si.RangeNames) - 1 {
1446514527
podIpv4RangeStr += ", "
1446614528
}
14467-
cumulativeRangeIndex++
1446814529
}
14469-
14470-
subnetStr += fmt.Sprintf(`
14471-
resource "google_compute_subnetwork" "extra_%d" {
14472-
ip_cidr_range = "10.1.%d.0/24"
14473-
name = "tf-test-subnet-%d"
14474-
network = google_compute_network.main.self_link
14475-
region = "us-central1"
14476-
%s
14477-
}
14478-
`, subnetIndex, subnetIndex, subnetIndex, secondaryRangeStr)
14479-
1448014530
additionalIpRangesStr += fmt.Sprintf(`
1448114531
additional_ip_ranges_config {
14482-
subnetwork = google_compute_subnetwork.extra_%d.id
14532+
subnetwork = "%s"
1448314533
pod_ipv4_range_names = [%s]
1448414534
}
14485-
`, subnetIndex, podIpv4RangeStr)
14535+
`, si.SubnetName, podIpv4RangeStr)
1448614536
}
1448714537

1448814538
return fmt.Sprintf(`
14489-
resource "google_compute_network" "main" {
14490-
name = "%s"
14491-
auto_create_subnetworks = false
14492-
}
14493-
14494-
resource "google_compute_subnetwork" "main" {
14495-
ip_cidr_range = "10.2.0.0/24"
14496-
name = "%s"
14497-
network = google_compute_network.main.self_link
14498-
region = "us-central1"
14499-
14500-
secondary_ip_range {
14501-
range_name = "services"
14502-
ip_cidr_range = "10.3.0.0/16"
14503-
}
14504-
14505-
secondary_ip_range {
14506-
range_name = "pods"
14507-
ip_cidr_range = "10.4.0.0/16"
14508-
}
14509-
}
14510-
14511-
%s
14512-
1451314539
resource "google_container_cluster" "primary" {
1451414540
name = "%s"
1451514541
location = "us-central1-a"
14516-
network = google_compute_network.main.name
14517-
subnetwork = google_compute_subnetwork.main.name
14542+
network = "%s"
14543+
subnetwork = "%s"
1451814544
initial_node_count = 1
1451914545

1452014546
ip_allocation_policy {
@@ -14525,7 +14551,7 @@ func testAccContainerCluster_additional_ip_ranges_config(name string, additional
1452514551

1452614552
deletion_protection = false
1452714553
}
14528-
`, name, name, subnetStr, name, additionalIpRangesStr)
14554+
`, clusterName, networkName, sri[0].SubnetName, additionalIpRangesStr)
1452914555
}
1453014556

1453114557
func testAccContainerCluster_withAnonymousAuthenticationConfig(name, networkName, subnetworkName string, mode string) string {

0 commit comments

Comments
 (0)