Skip to content

Commit bef479a

Browse files
Launch domainName forwarding target to GA (#14253) (#23265)
[upstream:5a45bd67c793063e1f54500af38b042966e4f307] Signed-off-by: Modular Magician <[email protected]>
1 parent 8945592 commit bef479a

File tree

5 files changed

+84
-1
lines changed

5 files changed

+84
-1
lines changed

.changelog/14253.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
dns: added `target_name_servers.domain_name` field to `google_dns_managed_zone` resource (GA)
3+
```

google/services/dns/resource_dns_managed_zone.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,11 @@ This should be formatted like 'projects/{project}/global/networks/{network}' or
369369
func dnsManagedZoneForwardingConfigTargetNameServersSchema() *schema.Resource {
370370
return &schema.Resource{
371371
Schema: map[string]*schema.Schema{
372+
"domain_name": {
373+
Type: schema.TypeString,
374+
Optional: true,
375+
Description: `Fully qualified domain name for the forwarding target.`,
376+
},
372377
"forwarding_path": {
373378
Type: schema.TypeString,
374379
Optional: true,
@@ -1102,6 +1107,7 @@ func flattenDNSManagedZoneForwardingConfigTargetNameServers(v interface{}, d *sc
11021107
}
11031108
transformed.Add(map[string]interface{}{
11041109
"ipv4_address": flattenDNSManagedZoneForwardingConfigTargetNameServersIpv4Address(original["ipv4Address"], d, config),
1110+
"domain_name": flattenDNSManagedZoneForwardingConfigTargetNameServersDomainName(original["domainName"], d, config),
11051111
"forwarding_path": flattenDNSManagedZoneForwardingConfigTargetNameServersForwardingPath(original["forwardingPath"], d, config),
11061112
})
11071113
}
@@ -1111,6 +1117,10 @@ func flattenDNSManagedZoneForwardingConfigTargetNameServersIpv4Address(v interfa
11111117
return v
11121118
}
11131119

1120+
func flattenDNSManagedZoneForwardingConfigTargetNameServersDomainName(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1121+
return v
1122+
}
1123+
11141124
func flattenDNSManagedZoneForwardingConfigTargetNameServersForwardingPath(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
11151125
return v
11161126
}
@@ -1437,6 +1447,13 @@ func expandDNSManagedZoneForwardingConfigTargetNameServers(v interface{}, d tpgr
14371447
transformed["ipv4Address"] = transformedIpv4Address
14381448
}
14391449

1450+
transformedDomainName, err := expandDNSManagedZoneForwardingConfigTargetNameServersDomainName(original["domain_name"], d, config)
1451+
if err != nil {
1452+
return nil, err
1453+
} else if val := reflect.ValueOf(transformedDomainName); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1454+
transformed["domainName"] = transformedDomainName
1455+
}
1456+
14401457
transformedForwardingPath, err := expandDNSManagedZoneForwardingConfigTargetNameServersForwardingPath(original["forwarding_path"], d, config)
14411458
if err != nil {
14421459
return nil, err
@@ -1453,6 +1470,10 @@ func expandDNSManagedZoneForwardingConfigTargetNameServersIpv4Address(v interfac
14531470
return v, nil
14541471
}
14551472

1473+
func expandDNSManagedZoneForwardingConfigTargetNameServersDomainName(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1474+
return v, nil
1475+
}
1476+
14561477
func expandDNSManagedZoneForwardingConfigTargetNameServersForwardingPath(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
14571478
return v, nil
14581479
}

google/services/dns/resource_dns_managed_zone_generated_meta.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ fields:
2020
provider_only: true
2121
- field: 'force_destroy'
2222
provider_only: true
23+
- field: 'forwarding_config.target_name_servers.domain_name'
2324
- field: 'forwarding_config.target_name_servers.forwarding_path'
2425
- field: 'forwarding_config.target_name_servers.ipv4_address'
2526
- field: 'labels'

google/services/dns/resource_dns_managed_zone_test.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,3 +633,61 @@ resource "google_dns_managed_zone" "foobar" {
633633
}
634634
`, suffix, suffix, description, project)
635635
}
636+
637+
func TestAccDNSManagedZone_privateForwardingWithDomainNameUpdate(t *testing.T) {
638+
t.Parallel()
639+
640+
zoneSuffix := acctest.RandString(t, 10)
641+
642+
acctest.VcrTest(t, resource.TestCase{
643+
PreCheck: func() { acctest.AccTestPreCheck(t) },
644+
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
645+
CheckDestroy: testAccCheckDNSManagedZoneDestroyProducer(t),
646+
Steps: []resource.TestStep{
647+
{
648+
Config: testAccDnsManagedZone_privateForwardingWithDomainNameUpdate(zoneSuffix, "dns.infra.foo.com.", "private"),
649+
},
650+
{
651+
ResourceName: "google_dns_managed_zone.private",
652+
ImportState: true,
653+
ImportStateVerify: true,
654+
},
655+
{
656+
Config: testAccDnsManagedZone_privateForwardingWithDomainNameUpdate(zoneSuffix, "dns.infra.goo.com.", "default"),
657+
},
658+
{
659+
ResourceName: "google_dns_managed_zone.private",
660+
ImportState: true,
661+
ImportStateVerify: true,
662+
},
663+
},
664+
})
665+
}
666+
667+
func testAccDnsManagedZone_privateForwardingWithDomainNameUpdate(suffix, domain_name, forwarding_path string) string {
668+
return fmt.Sprintf(`
669+
resource "google_dns_managed_zone" "private" {
670+
name = "private-zone-%s"
671+
dns_name = "private.example.com."
672+
description = "Example private DNS zone"
673+
visibility = "private"
674+
private_visibility_config {
675+
networks {
676+
network_url = google_compute_network.network-1.self_link
677+
}
678+
}
679+
680+
forwarding_config {
681+
target_name_servers {
682+
domain_name = "%s"
683+
forwarding_path = "%s"
684+
}
685+
}
686+
}
687+
688+
resource "google_compute_network" "network-1" {
689+
name = "tf-test-net-1-%s"
690+
auto_create_subnetworks = false
691+
}
692+
`, suffix, domain_name, forwarding_path, suffix)
693+
}

website/docs/r/dns_managed_zone.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,7 @@ The following arguments are supported:
498498
IPv4 address of a target name server.
499499

500500
* `domain_name` -
501-
(Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html))
501+
(Optional)
502502
Fully qualified domain name for the forwarding target.
503503

504504
* `forwarding_path` -

0 commit comments

Comments
 (0)