Skip to content

Commit 8bbd565

Browse files
Adding noautomatednszone in the resource forwardingrule (#8102) (#5842)
* adding the new fields noAutomateDnsZone, need to validate the error with test step and the plan was not empty * adding the tests scenarios, need to fix the test for global * adding more tests, but requires a test with a no_autome_dns with true value * added to the field, immutability and ignoring read from api, tests are passing * removing comments from tests Signed-off-by: Modular Magician <[email protected]>
1 parent ce05082 commit 8bbd565

7 files changed

+391
-18
lines changed

.changelog/8102.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
compute: added the `no_automate_dns_zone` field to `google_compute_forwarding_rule`.
3+
```

google-beta/resource_compute_forwarding_rule_generated_test.go

Lines changed: 131 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func TestAccComputeForwardingRule_internalHttpLbWithMigBackendExample(t *testing
4949
ResourceName: "google_compute_forwarding_rule.google_compute_forwarding_rule",
5050
ImportState: true,
5151
ImportStateVerify: true,
52-
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "region", "port_range", "target"},
52+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region", "port_range", "target"},
5353
},
5454
},
5555
})
@@ -268,7 +268,7 @@ func TestAccComputeForwardingRule_internalTcpUdpLbWithMigBackendExample(t *testi
268268
ResourceName: "google_compute_forwarding_rule.google_compute_forwarding_rule",
269269
ImportState: true,
270270
ImportStateVerify: true,
271-
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "region"},
271+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region"},
272272
},
273273
},
274274
})
@@ -476,7 +476,7 @@ func TestAccComputeForwardingRule_forwardingRuleExternallbExample(t *testing.T)
476476
ResourceName: "google_compute_forwarding_rule.default",
477477
ImportState: true,
478478
ImportStateVerify: true,
479-
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "region", "port_range"},
479+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region", "port_range"},
480480
},
481481
},
482482
})
@@ -532,7 +532,7 @@ func TestAccComputeForwardingRule_forwardingRuleGlobalInternallbExample(t *testi
532532
ResourceName: "google_compute_forwarding_rule.default",
533533
ImportState: true,
534534
ImportStateVerify: true,
535-
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "region"},
535+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region"},
536536
},
537537
},
538538
})
@@ -596,7 +596,7 @@ func TestAccComputeForwardingRule_forwardingRuleBasicExample(t *testing.T) {
596596
ResourceName: "google_compute_forwarding_rule.default",
597597
ImportState: true,
598598
ImportStateVerify: true,
599-
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "region", "port_range", "target"},
599+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region", "port_range", "target"},
600600
},
601601
},
602602
})
@@ -635,7 +635,7 @@ func TestAccComputeForwardingRule_forwardingRuleL3DefaultExample(t *testing.T) {
635635
ResourceName: "google_compute_forwarding_rule.fwd_rule",
636636
ImportState: true,
637637
ImportStateVerify: true,
638-
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "region"},
638+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region"},
639639
},
640640
},
641641
})
@@ -691,7 +691,7 @@ func TestAccComputeForwardingRule_forwardingRuleInternallbExample(t *testing.T)
691691
ResourceName: "google_compute_forwarding_rule.default",
692692
ImportState: true,
693693
ImportStateVerify: true,
694-
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "region", "port_range", "target"},
694+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region", "port_range", "target"},
695695
},
696696
},
697697
})
@@ -760,7 +760,7 @@ func TestAccComputeForwardingRule_forwardingRuleHttpLbExample(t *testing.T) {
760760
ResourceName: "google_compute_forwarding_rule.default",
761761
ImportState: true,
762762
ImportStateVerify: true,
763-
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "region", "port_range", "target"},
763+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region", "port_range", "target"},
764764
},
765765
},
766766
})
@@ -979,7 +979,7 @@ func TestAccComputeForwardingRule_forwardingRuleRegionalHttpXlbExample(t *testin
979979
ResourceName: "google_compute_forwarding_rule.default",
980980
ImportState: true,
981981
ImportStateVerify: true,
982-
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "region", "port_range", "target", "ip_address"},
982+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region", "port_range", "target", "ip_address"},
983983
},
984984
},
985985
})
@@ -1205,7 +1205,7 @@ func TestAccComputeForwardingRule_forwardingRuleVpcPscExample(t *testing.T) {
12051205
ResourceName: "google_compute_forwarding_rule.default",
12061206
ImportState: true,
12071207
ImportStateVerify: true,
1208-
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "region", "port_range", "target", "ip_address"},
1208+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region", "port_range", "target", "ip_address"},
12091209
},
12101210
},
12111211
})
@@ -1248,6 +1248,126 @@ resource "google_compute_address" "consumer_address" {
12481248
12491249
// Producer service attachment
12501250
1251+
resource "google_compute_network" "producer_net" {
1252+
name = "tf-test-producer-net%{random_suffix}"
1253+
auto_create_subnetworks = false
1254+
}
1255+
1256+
resource "google_compute_subnetwork" "producer_subnet" {
1257+
name = "tf-test-producer-net%{random_suffix}"
1258+
ip_cidr_range = "10.0.0.0/16"
1259+
region = "us-central1"
1260+
network = google_compute_network.producer_net.id
1261+
}
1262+
1263+
resource "google_compute_subnetwork" "psc_producer_subnet" {
1264+
name = "tf-test-producer-psc-net%{random_suffix}"
1265+
ip_cidr_range = "10.1.0.0/16"
1266+
region = "us-central1"
1267+
1268+
purpose = "PRIVATE_SERVICE_CONNECT"
1269+
network = google_compute_network.producer_net.id
1270+
}
1271+
1272+
resource "google_compute_service_attachment" "producer_service_attachment" {
1273+
name = "tf-test-producer-service%{random_suffix}"
1274+
region = "us-central1"
1275+
description = "A service attachment configured with Terraform"
1276+
1277+
enable_proxy_protocol = true
1278+
connection_preference = "ACCEPT_AUTOMATIC"
1279+
nat_subnets = [google_compute_subnetwork.psc_producer_subnet.name]
1280+
target_service = google_compute_forwarding_rule.producer_target_service.id
1281+
}
1282+
1283+
resource "google_compute_forwarding_rule" "producer_target_service" {
1284+
name = "tf-test-producer-forwarding-rule%{random_suffix}"
1285+
region = "us-central1"
1286+
1287+
load_balancing_scheme = "INTERNAL"
1288+
backend_service = google_compute_region_backend_service.producer_service_backend.id
1289+
all_ports = true
1290+
network = google_compute_network.producer_net.name
1291+
subnetwork = google_compute_subnetwork.producer_subnet.name
1292+
}
1293+
1294+
resource "google_compute_region_backend_service" "producer_service_backend" {
1295+
name = "tf-test-producer-service-backend%{random_suffix}"
1296+
region = "us-central1"
1297+
1298+
health_checks = [google_compute_health_check.producer_service_health_check.id]
1299+
}
1300+
1301+
resource "google_compute_health_check" "producer_service_health_check" {
1302+
name = "tf-test-producer-service-health-check%{random_suffix}"
1303+
1304+
check_interval_sec = 1
1305+
timeout_sec = 1
1306+
tcp_health_check {
1307+
port = "80"
1308+
}
1309+
}
1310+
`, context)
1311+
}
1312+
1313+
func TestAccComputeForwardingRule_forwardingRuleVpcPscNoAutomateDnsExample(t *testing.T) {
1314+
t.Parallel()
1315+
1316+
context := map[string]interface{}{
1317+
"random_suffix": RandString(t, 10),
1318+
}
1319+
1320+
VcrTest(t, resource.TestCase{
1321+
PreCheck: func() { acctest.AccTestPreCheck(t) },
1322+
ProtoV5ProviderFactories: ProtoV5ProviderFactories(t),
1323+
CheckDestroy: testAccCheckComputeForwardingRuleDestroyProducer(t),
1324+
Steps: []resource.TestStep{
1325+
{
1326+
Config: testAccComputeForwardingRule_forwardingRuleVpcPscNoAutomateDnsExample(context),
1327+
},
1328+
{
1329+
ResourceName: "google_compute_forwarding_rule.default",
1330+
ImportState: true,
1331+
ImportStateVerify: true,
1332+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region", "port_range", "target", "ip_address"},
1333+
},
1334+
},
1335+
})
1336+
}
1337+
1338+
func testAccComputeForwardingRule_forwardingRuleVpcPscNoAutomateDnsExample(context map[string]interface{}) string {
1339+
return acctest.Nprintf(`
1340+
resource "google_compute_forwarding_rule" "default" {
1341+
name = "tf-test-psc-endpoint%{random_suffix}"
1342+
region = "us-central1"
1343+
load_balancing_scheme = ""
1344+
target = google_compute_service_attachment.producer_service_attachment.id
1345+
network = google_compute_network.consumer_net.name
1346+
ip_address = google_compute_address.consumer_address.id
1347+
allow_psc_global_access = true
1348+
no_automate_dns_zone = true
1349+
}
1350+
1351+
resource "google_compute_network" "consumer_net" {
1352+
name = "tf-test-consumer-net%{random_suffix}"
1353+
auto_create_subnetworks = false
1354+
}
1355+
1356+
resource "google_compute_subnetwork" "consumer_subnet" {
1357+
name = "tf-test-consumer-net%{random_suffix}"
1358+
ip_cidr_range = "10.0.0.0/16"
1359+
region = "us-central1"
1360+
network = google_compute_network.consumer_net.id
1361+
}
1362+
1363+
resource "google_compute_address" "consumer_address" {
1364+
name = "tf-test-website-ip%{random_suffix}-1"
1365+
region = "us-central1"
1366+
subnetwork = google_compute_subnetwork.consumer_subnet.id
1367+
address_type = "INTERNAL"
1368+
}
1369+
1370+
12511371
resource "google_compute_network" "producer_net" {
12521372
name = "tf-test-producer-net%{random_suffix}"
12531373
auto_create_subnetworks = false
@@ -1329,7 +1449,7 @@ func TestAccComputeForwardingRule_forwardingRuleRegionalSteeringExample(t *testi
13291449
ResourceName: "google_compute_forwarding_rule.steering",
13301450
ImportState: true,
13311451
ImportStateVerify: true,
1332-
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "region"},
1452+
ImportStateVerifyIgnore: []string{"backend_service", "network", "subnetwork", "no_automate_dns_zone", "region"},
13331453
},
13341454
},
13351455
})

google-beta/resource_compute_global_forwarding_rule_generated_test.go

Lines changed: 75 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func TestAccComputeGlobalForwardingRule_externalTcpProxyLbMigBackendExample(t *t
5050
ResourceName: "google_compute_global_forwarding_rule.default",
5151
ImportState: true,
5252
ImportStateVerify: true,
53-
ImportStateVerifyIgnore: []string{"network", "port_range", "target", "ip_address"},
53+
ImportStateVerifyIgnore: []string{"network", "no_automate_dns_zone", "port_range", "target", "ip_address"},
5454
},
5555
},
5656
})
@@ -223,7 +223,7 @@ func TestAccComputeGlobalForwardingRule_externalHttpLbMigBackendCustomHeaderExam
223223
ResourceName: "google_compute_global_forwarding_rule.default",
224224
ImportState: true,
225225
ImportStateVerify: true,
226-
ImportStateVerifyIgnore: []string{"network", "port_range", "target", "ip_address"},
226+
ImportStateVerifyIgnore: []string{"network", "no_automate_dns_zone", "port_range", "target", "ip_address"},
227227
},
228228
},
229229
})
@@ -408,7 +408,7 @@ func TestAccComputeGlobalForwardingRule_globalForwardingRuleHttpExample(t *testi
408408
ResourceName: "google_compute_global_forwarding_rule.default",
409409
ImportState: true,
410410
ImportStateVerify: true,
411-
ImportStateVerifyIgnore: []string{"network", "port_range", "target"},
411+
ImportStateVerifyIgnore: []string{"network", "no_automate_dns_zone", "port_range", "target"},
412412
},
413413
},
414414
})
@@ -486,7 +486,7 @@ func TestAccComputeGlobalForwardingRule_globalForwardingRuleInternalExample(t *t
486486
ResourceName: "google_compute_global_forwarding_rule.default",
487487
ImportState: true,
488488
ImportStateVerify: true,
489-
ImportStateVerifyIgnore: []string{"network", "port_range", "target"},
489+
ImportStateVerifyIgnore: []string{"network", "no_automate_dns_zone", "port_range", "target"},
490490
},
491491
},
492492
})
@@ -623,7 +623,7 @@ func TestAccComputeGlobalForwardingRule_globalForwardingRuleExternalManagedExamp
623623
ResourceName: "google_compute_global_forwarding_rule.default",
624624
ImportState: true,
625625
ImportStateVerify: true,
626-
ImportStateVerifyIgnore: []string{"network", "port_range", "target"},
626+
ImportStateVerifyIgnore: []string{"network", "no_automate_dns_zone", "port_range", "target"},
627627
},
628628
},
629629
})
@@ -694,7 +694,7 @@ func TestAccComputeGlobalForwardingRule_globalForwardingRuleHybridExample(t *tes
694694
ResourceName: "google_compute_global_forwarding_rule.default",
695695
ImportState: true,
696696
ImportStateVerify: true,
697-
ImportStateVerifyIgnore: []string{"network", "port_range", "target"},
697+
ImportStateVerifyIgnore: []string{"network", "no_automate_dns_zone", "port_range", "target"},
698698
},
699699
},
700700
})
@@ -855,7 +855,7 @@ func TestAccComputeGlobalForwardingRule_privateServiceConnectGoogleApisExample(t
855855
ResourceName: "google_compute_global_forwarding_rule.default",
856856
ImportState: true,
857857
ImportStateVerify: true,
858-
ImportStateVerifyIgnore: []string{"network", "ip_address"},
858+
ImportStateVerifyIgnore: []string{"network", "no_automate_dns_zone", "ip_address"},
859859
},
860860
},
861861
})
@@ -902,6 +902,74 @@ resource "google_compute_global_forwarding_rule" "default" {
902902
`, context)
903903
}
904904

905+
func TestAccComputeGlobalForwardingRule_privateServiceConnectGoogleApisNoAutomateDnsExample(t *testing.T) {
906+
t.Parallel()
907+
908+
context := map[string]interface{}{
909+
"project": envvar.GetTestProjectFromEnv(),
910+
"random_suffix": RandString(t, 10),
911+
}
912+
913+
VcrTest(t, resource.TestCase{
914+
PreCheck: func() { acctest.AccTestPreCheck(t) },
915+
ProtoV5ProviderFactories: ProtoV5ProviderBetaFactories(t),
916+
CheckDestroy: testAccCheckComputeGlobalForwardingRuleDestroyProducer(t),
917+
Steps: []resource.TestStep{
918+
{
919+
Config: testAccComputeGlobalForwardingRule_privateServiceConnectGoogleApisNoAutomateDnsExample(context),
920+
},
921+
{
922+
ResourceName: "google_compute_global_forwarding_rule.default",
923+
ImportState: true,
924+
ImportStateVerify: true,
925+
ImportStateVerifyIgnore: []string{"network", "no_automate_dns_zone", "ip_address"},
926+
},
927+
},
928+
})
929+
}
930+
931+
func testAccComputeGlobalForwardingRule_privateServiceConnectGoogleApisNoAutomateDnsExample(context map[string]interface{}) string {
932+
return acctest.Nprintf(`
933+
resource "google_compute_network" "network" {
934+
provider = google-beta
935+
project = "%{project}"
936+
name = "tf-test-my-network%{random_suffix}"
937+
auto_create_subnetworks = false
938+
}
939+
940+
resource "google_compute_subnetwork" "vpc_subnetwork" {
941+
provider = google-beta
942+
project = google_compute_network.network.project
943+
name = "tf-test-my-subnetwork%{random_suffix}"
944+
ip_cidr_range = "10.2.0.0/16"
945+
region = "us-central1"
946+
network = google_compute_network.network.id
947+
private_ip_google_access = true
948+
}
949+
950+
resource "google_compute_global_address" "default" {
951+
provider = google-beta
952+
project = google_compute_network.network.project
953+
name = "tf-test-global-psconnect-ip%{random_suffix}"
954+
address_type = "INTERNAL"
955+
purpose = "PRIVATE_SERVICE_CONNECT"
956+
network = google_compute_network.network.id
957+
address = "100.100.100.106"
958+
}
959+
960+
resource "google_compute_global_forwarding_rule" "default" {
961+
provider = google-beta
962+
project = google_compute_network.network.project
963+
name = "globalrule%{random_suffix}"
964+
target = "all-apis"
965+
network = google_compute_network.network.id
966+
ip_address = google_compute_global_address.default.id
967+
load_balancing_scheme = ""
968+
no_automate_dns_zone = false
969+
}
970+
`, context)
971+
}
972+
905973
func testAccCheckComputeGlobalForwardingRuleDestroyProducer(t *testing.T) func(s *terraform.State) error {
906974
return func(s *terraform.State) error {
907975
for name, rs := range s.RootModule().Resources {

0 commit comments

Comments
 (0)