@@ -51,6 +51,7 @@ func getNetworkResourceNames(envCode string, networkMode string, firewallMode st
51
51
"base" : {
52
52
"network_name" : fmt .Sprintf ("vpc-%s-shared-base%s" , envCode , networkMode ),
53
53
"global_address" : fmt .Sprintf ("ga-%s-shared-base%s-vpc-peering-internal" , envCode , networkMode ),
54
+ "dns_zone_forward" : "fz-dns-hub" ,
54
55
"dns_zone_googleapis" : fmt .Sprintf ("dz-%s-shared-base-apis" , envCode ),
55
56
"dns_zone_gcr" : fmt .Sprintf ("dz-%s-shared-base-gcr" , envCode ),
56
57
"dns_zone_pkg_dev" : fmt .Sprintf ("dz-%s-shared-base-pkg-dev" , envCode ),
@@ -69,6 +70,7 @@ func getNetworkResourceNames(envCode string, networkMode string, firewallMode st
69
70
"restricted" : {
70
71
"network_name" : fmt .Sprintf ("vpc-%s-shared-restricted%s" , envCode , networkMode ),
71
72
"global_address" : fmt .Sprintf ("ga-%s-shared-restricted%s-vpc-peering-internal" , envCode , networkMode ),
73
+ "dns_zone_forward" : "fz-dns-hub" ,
72
74
"dns_zone_googleapis" : fmt .Sprintf ("dz-%s-shared-restricted-apis" , envCode ),
73
75
"dns_zone_gcr" : fmt .Sprintf ("dz-%s-shared-restricted-gcr" , envCode ),
74
76
"dns_zone_pkg_dev" : fmt .Sprintf ("dz-%s-shared-restricted-pkg-dev" , envCode ),
@@ -331,22 +333,17 @@ func TestNetworks(t *testing.T) {
331
333
tfdDir = "../../../3-networks-hub-and-spoke/envs/%s"
332
334
}
333
335
334
- var tfdDirDNS string
335
- if networkMode == "" {
336
- tfdDirDNS = "../../../3-networks-dual-svpc/envs/production"
337
- } else {
338
- tfdDirDNS = "../../../3-networks-hub-and-spoke/envs/shared"
339
- }
340
-
341
336
envCode := string (envName [0 :1 ])
342
337
networks := tft .NewTFBlueprintTest (t ,
343
338
tft .WithTFDir (fmt .Sprintf (tfdDir , envName )),
344
- tft .WithTFDir (fmt .Sprintf (tfdDirDNS )),
345
339
tft .WithVars (vars ),
346
340
tft .WithRetryableTerraformErrors (testutils .RetryableTransientErrors , 10 , 2 * time .Minute ),
347
341
tft .WithPolicyLibraryPath ("/workspace/policy-library" , bootstrap .GetTFSetupStringOutput ("project_id" )),
348
342
tft .WithBackendConfig (backendConfig ),
349
343
)
344
+
345
+ networkMode := getNetworkMode (t )
346
+
350
347
networks .DefineVerify (
351
348
func (assert * assert.Assertions ) {
352
349
// perform default verification ensuring Terraform reports no additional changes on an applied blueprint
@@ -359,9 +356,6 @@ func TestNetworks(t *testing.T) {
359
356
servicePerimeterLink := fmt .Sprintf ("accessPolicies/%s/servicePerimeters/%s" , policyID , networks .GetStringOutput ("restricted_service_perimeter_name" ))
360
357
accessLevel := fmt .Sprintf ("accessPolicies/%s/accessLevels/%s" , policyID , networks .GetStringOutput ("access_level_name_dry_run" ))
361
358
networkNames := getNetworkResourceNames (envCode , networkMode , firewallMode )
362
- baseSharedProjectID := networks .GetStringOutput ("base_host_project_id" )
363
- restrictedProjectID := networks .GetStringOutput ("restricted_host_project_id" )
364
- dnsFwZoneName := "fz-dns-hub"
365
359
366
360
servicePerimeter , err := gcloud .RunCmdE (t , fmt .Sprintf ("access-context-manager perimeters dry-run describe %s --policy %s" , servicePerimeterLink , policyID ))
367
361
assert .NoError (err )
@@ -378,22 +372,30 @@ func TestNetworks(t *testing.T) {
378
372
} {
379
373
projectID := networks .GetStringOutput (fmt .Sprintf ("%s_host_project_id" , networkType ))
380
374
381
- for _ , dnsType := range []string {
382
- "dns_zone_googleapis" ,
383
- "dns_zone_gcr" ,
384
- "dns_zone_pkg_dev" ,
385
- "dns_zone_peering_zone" ,
386
- } {
387
- dnsName := networkNames [networkType ][dnsType ]
388
- dnsZone := gcloud .Runf (t , "dns managed-zones describe %s --project %s --impersonate-service-account %s" , dnsName , projectID , terraformSA )
389
- assert .Equal (dnsName , dnsZone .Get ("name" ).String (), fmt .Sprintf ("dnsZone %s should exist" , dnsName ))
375
+ if networkMode == "-spoke" {
376
+ for _ , dnsType := range []string {
377
+ "dns_zone_googleapis" ,
378
+ "dns_zone_gcr" ,
379
+ "dns_zone_pkg_dev" ,
380
+ "dns_zone_peering_zone" ,
381
+ } {
382
+ dnsName := networkNames [networkType ][dnsType ]
383
+ dnsZone := gcloud .Runf (t , "dns managed-zones describe %s --project %s --impersonate-service-account %s" , dnsName , projectID , terraformSA )
384
+ assert .Equal (dnsName , dnsZone .Get ("name" ).String (), fmt .Sprintf ("dnsZone %s should exist" , dnsName ))
385
+ }
386
+ } else {
387
+ for _ , dnsType := range []string {
388
+ "dns_zone_googleapis" ,
389
+ "dns_zone_gcr" ,
390
+ "dns_zone_pkg_dev" ,
391
+ "dns_zone_forward" ,
392
+ } {
393
+ dnsName := networkNames [networkType ][dnsType ]
394
+ dnsZone := gcloud .Runf (t , "dns managed-zones describe %s --project %s --impersonate-service-account %s" , dnsName , projectID , terraformSA )
395
+ assert .Equal (dnsName , dnsZone .Get ("name" ).String (), fmt .Sprintf ("dnsZone %s should exist" , dnsName ))
396
+ }
390
397
}
391
398
392
- dnsZoneSharedBaseHubSpoke := gcloud .Runf (t , "dns managed-zones describe %s --project %s --impersonate-service-account %s" , dnsFwZoneName , baseSharedProjectID , terraformSA )
393
- assert .Equal (dnsFwZoneName , dnsZoneSharedBaseHubSpoke .Get ("name" ).String (), fmt .Sprintf ("dnsZone %s should exist for base" , dnsFwZoneName ))
394
- dnsZoneRestrictedHubSpoke := gcloud .Runf (t , "dns managed-zones describe %s --project %s --impersonate-service-account %s" , dnsFwZoneName , restrictedProjectID , terraformSA )
395
- assert .Equal (dnsFwZoneName , dnsZoneRestrictedHubSpoke .Get ("name" ).String (), fmt .Sprintf ("dnsZone %s should exist for restricted" , dnsFwZoneName ))
396
-
397
399
networkName := networkNames [networkType ]["network_name" ]
398
400
networkUrl := fmt .Sprintf ("https://www.googleapis.com/compute/v1/projects/%s/global/networks/%s" , projectID , networkName )
399
401
dnsPolicyName := networkNames [networkType ]["dns_policy_name" ]
@@ -462,18 +464,16 @@ func TestNetworks(t *testing.T) {
462
464
} {
463
465
464
466
routerName := networkNames [networkType ][router.router ]
467
+ bgpAdvertisedIpRange := "35.199.192.0/19"
465
468
computeRouter := gcloud .Runf (t , "compute routers describe %s --region %s --project %s --impersonate-service-account %s" , routerName , router .region , projectID , terraformSA )
466
469
networkSelfLink := fmt .Sprintf ("https://www.googleapis.com/compute/v1/projects/%s/global/networks/%s" , projectID , networkNames [networkType ]["network_name" ])
467
470
assert .Equal (routerName , computeRouter .Get ("name" ).String (), fmt .Sprintf ("router %s should exist" , routerName ))
468
471
assert .Equal ("64514" , computeRouter .Get ("bgp.asn" ).String (), fmt .Sprintf ("router %s should have bgp asm 64514" , routerName ))
469
- assert .Equal (1 , len (computeRouter .Get ("bgp.advertisedIpRanges" ).Array ()), fmt .Sprintf ("router %s should have only one advertised IP range" , routerName ))
470
- assert .Equal (googleapisCIDR [envName ][networkType ], computeRouter .Get ("bgp.advertisedIpRanges.0.range" ).String (), fmt .Sprintf ("router %s should have only range %s" , routerName , googleapisCIDR [envName ][networkType ]))
471
- assert .Equal (networkSelfLink , computeRouter .Get ("network" ).String (), fmt .Sprintf ("router %s should have be from network %s" , routerName , networkNames [networkType ]["network_name" ]))
472
-
473
- dnsZoneSharedBaseSVPC := gcloud .Runf (t , "dns managed-zones describe %s --project %s --impersonate-service-account %s" , dnsFwZoneName , baseSharedProjectID , terraformSA )
474
- assert .Equal (dnsFwZoneName , dnsZoneSharedBaseSVPC .Get ("name" ).String (), fmt .Sprintf ("dnsZone %s should exist for base" , dnsFwZoneName ))
475
- dnsZoneRestrictedSVPC := gcloud .Runf (t , "dns managed-zones describe %s --project %s --impersonate-service-account %s" , dnsFwZoneName , restrictedProjectID , terraformSA )
476
- assert .Equal (dnsFwZoneName , dnsZoneRestrictedSVPC .Get ("name" ).String (), fmt .Sprintf ("dnsZone %s should exist for restricted" , dnsFwZoneName ))
472
+ assert .Equal (networkSelfLink , computeRouter .Get ("network" ).String (), fmt .Sprintf ("router %s should be on network %s" , routerName , networkNames [networkType ]["network_name" ]))
473
+ if strings .Contains (projectID , "prj-p" ) && networkMode != "-spoke" {
474
+ assert .Equal (bgpAdvertisedIpRange , computeRouter .Get ("bgp.advertisedIpRanges.0.range" ).String (), fmt .Sprintf ("router %s should have range %s" , routerName , bgpAdvertisedIpRange ))
475
+ assert .Equal (googleapisCIDR [envName ][networkType ], computeRouter .Get ("bgp.advertisedIpRanges.0.range" ).String (), fmt .Sprintf ("router %s should have only range %s" , routerName , googleapisCIDR [envName ][networkType ]))
476
+ }
477
477
}
478
478
}
479
479
}
@@ -483,4 +483,3 @@ func TestNetworks(t *testing.T) {
483
483
484
484
}
485
485
}
486
-
0 commit comments