Skip to content

Commit

Permalink
Terraform: Make private Cloud DNS GA (#1600)
Browse files Browse the repository at this point in the history
Merged PR #1600.
  • Loading branch information
drebes authored and modular-magician committed Apr 1, 2019
1 parent 1e62ab6 commit d31ad24
Show file tree
Hide file tree
Showing 9 changed files with 115 additions and 31 deletions.
2 changes: 1 addition & 1 deletion build/terraform
2 changes: 1 addition & 1 deletion build/terraform-beta
2 changes: 1 addition & 1 deletion build/terraform-mapper
2 changes: 0 additions & 2 deletions products/dns/api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ objects:
- :private
- :public
default_value: :public
min_version: beta
- !ruby/object:Api::Type::NestedObject
name: 'privateVisibilityConfig'
description: |
Expand All @@ -122,7 +121,6 @@ objects:
The fully qualified URL of the VPC network to bind to.
This should be formatted like
`https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`
min_version: beta
- !ruby/object:Api::Type::NestedObject
name: 'forwardingConfig'
description: |
Expand Down
7 changes: 7 additions & 0 deletions products/dns/terraform.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@ overrides: !ruby/object:Overrides::ResourceOverrides
- !ruby/object:Provider::Terraform::Examples
name: "dns_managed_zone_private"
primary_resource_id: "private-zone"
vars:
zone_name: "private-zone"
network_1_name: "network-1"
network_2_name: "network-2"
- !ruby/object:Provider::Terraform::Examples
name: "dns_managed_zone_private_forwarding"
primary_resource_id: "private-zone"
skip_test: true
vars:
zone_name: "private-zone"
Expand Down
10 changes: 0 additions & 10 deletions templates/terraform/examples/dns_managed_zone_private.tf.erb
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,6 @@ resource "google_dns_managed_zone" "<%= ctx[:primary_resource_id] %>" {
network_url = "${google_compute_network.network-2.self_link}"
}
}

forwarding_config {
target_name_servers {
ipv4_address = "172.16.1.10"
}
target_name_servers {
ipv4_address = "172.16.1.20"
}
}

}

resource "google_compute_network" "network-1" {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
resource "google_dns_managed_zone" "<%= ctx[:primary_resource_id] %>" {
provider = "google-beta"
name = "<%= ctx[:vars]['zone_name'] %>"
dns_name = "private.example.com."
description = "Example private DNS zone"
labels = {
foo = "bar"
}

visibility = "private"

private_visibility_config {
networks {
network_url = "${google_compute_network.network-1.self_link}"
}
networks {
network_url = "${google_compute_network.network-2.self_link}"
}
}

forwarding_config {
target_name_servers {
ipv4_address = "172.16.1.10"
}
target_name_servers {
ipv4_address = "172.16.1.20"
}
}

}

resource "google_compute_network" "network-1" {
name = "<%= ctx[:vars]['network_1_name'] %>"
auto_create_subnetworks = false
}

resource "google_compute_network" "network-2" {
name = "<%= ctx[:vars]['network_2_name'] %>"
auto_create_subnetworks = false
}
79 changes: 64 additions & 15 deletions third_party/terraform/tests/resource_dns_managed_zone_test.go.erb
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ func TestAccDnsManagedZone_update(t *testing.T) {
})
}

<% unless version.nil? || version == 'ga' -%>
func TestAccDnsManagedZone_privateUpdate(t *testing.T) {
t.Parallel()

Expand All @@ -51,15 +50,45 @@ func TestAccDnsManagedZone_privateUpdate(t *testing.T) {
CheckDestroy: testAccCheckDnsManagedZoneDestroy,
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccDnsManagedZone_privateUpdate(zoneSuffix, "network-1", "network-2", "172.16.1.10", "172.16.1.20"),
Config: testAccDnsManagedZone_privateUpdate(zoneSuffix, "network-1", "network-2"),
},
resource.TestStep{
ResourceName: "google_dns_managed_zone.private",
ImportState: true,
ImportStateVerify: true,
},
resource.TestStep{
Config: testAccDnsManagedZone_privateUpdate(zoneSuffix, "network-2", "network-3", "172.16.1.10", "192.168.1.1"),
Config: testAccDnsManagedZone_privateUpdate(zoneSuffix, "network-2", "network-3"),
},
resource.TestStep{
ResourceName: "google_dns_managed_zone.private",
ImportState: true,
ImportStateVerify: true,
},
},
})
}
<% unless version.nil? || version == 'ga' -%>
func TestAccDnsManagedZone_privateForwardingUpdate(t *testing.T) {
t.Parallel()

zoneSuffix := acctest.RandString(10)

resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckDnsManagedZoneDestroy,
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccDnsManagedZone_privateForwardingUpdate(zoneSuffix, "172.16.1.10", "172.16.1.20"),
},
resource.TestStep{
ResourceName: "google_dns_managed_zone.private",
ImportState: true,
ImportStateVerify: true,
},
resource.TestStep{
Config: testAccDnsManagedZone_privateForwardingUpdate(zoneSuffix, "172.16.1.10", "192.168.1.1"),
},
resource.TestStep{
ResourceName: "google_dns_managed_zone.private",
Expand All @@ -83,8 +112,7 @@ resource "google_dns_managed_zone" "foobar" {
}`, suffix, suffix, description)
}

<% unless version.nil? || version == 'ga' -%>
func testAccDnsManagedZone_privateUpdate(suffix, first_network, second_network, first_nameserver, second_nameserver string) string {
func testAccDnsManagedZone_privateUpdate(suffix, first_network, second_network string) string {
return fmt.Sprintf(`
resource "google_dns_managed_zone" "private" {
name = "private-zone-%s"
Expand All @@ -99,15 +127,6 @@ resource "google_dns_managed_zone" "private" {
network_url = "${google_compute_network.%s.self_link}"
}
}

forwarding_config {
target_name_servers {
ipv4_address = "%s"
}
target_name_servers {
ipv4_address = "%s"
}
}
}

resource "google_compute_network" "network-1" {
Expand All @@ -123,7 +142,37 @@ resource "google_compute_network" "network-2" {
resource "google_compute_network" "network-3" {
name = "network-3-%s"
auto_create_subnetworks = false
}`, suffix, first_network, second_network, first_nameserver, second_nameserver, suffix, suffix, suffix)
}`, suffix, first_network, second_network, suffix, suffix, suffix)
}

<% unless version.nil? || version == 'ga' -%>
func testAccDnsManagedZone_privateForwardingUpdate(suffix, first_nameserver, second_nameserver string) string {
return fmt.Sprintf(`
resource "google_dns_managed_zone" "private" {
name = "private-zone-%s"
dns_name = "private.example.com."
description = "Example private DNS zone"
visibility = "private"
private_visibility_config {
networks {
network_url = "${google_compute_network.network-1.self_link}"
}
}

forwarding_config {
target_name_servers {
ipv4_address = "%s"
}
target_name_servers {
ipv4_address = "%s"
}
}
}

resource "google_compute_network" "network-1" {
name = "network-1-%s"
auto_create_subnetworks = false
}`, suffix, first_nameserver, second_nameserver, suffix)
}
<% end -%>

Expand Down

0 comments on commit d31ad24

Please sign in to comment.