Skip to content

Commit 2dde9d8

Browse files
authored
fix: network attachment error in firewall policy sub-module (#478)
1 parent e17e051 commit 2dde9d8

File tree

5 files changed

+30
-13
lines changed

5 files changed

+30
-13
lines changed

build/int.cloudbuild.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ steps:
168168
args: ['/bin/bash', '-c', 'cft test run TestPrivateServiceConnect --stage teardown --verbose']
169169
- id: converge global-firewall-policy
170170
waitFor:
171-
- create all
171+
- destroy private-service-connect
172172
name: 'gcr.io/cloud-foundation-cicd/$_DOCKER_IMAGE_DEVELOPER_TOOLS:$_DOCKER_TAG_VERSION_DEVELOPER_TOOLS'
173173
args: ['/bin/bash', '-c', 'cft test run TestGlobalNetworkFirewallPolicy --stage apply --verbose']
174174
- id: verify global-firewall-policy
@@ -183,7 +183,7 @@ steps:
183183
args: ['/bin/bash', '-c', 'cft test run TestGlobalNetworkFirewallPolicy --stage teardown --verbose']
184184
- id: converge regional-firewall-policy
185185
waitFor:
186-
- create all
186+
- destroy global-firewall-policy
187187
name: 'gcr.io/cloud-foundation-cicd/$_DOCKER_IMAGE_DEVELOPER_TOOLS:$_DOCKER_TAG_VERSION_DEVELOPER_TOOLS'
188188
args: ['/bin/bash', '-c', 'cft test run TestRegionalNetworkFirewallPolicy --stage apply --verbose']
189189
- id: verify regional-firewall-policy
@@ -198,7 +198,7 @@ steps:
198198
args: ['/bin/bash', '-c', 'cft test run TestRegionalNetworkFirewallPolicy --stage teardown --verbose']
199199
- id: converge firewall-rule
200200
waitFor:
201-
- create all
201+
- destroy regional-firewall-policy
202202
name: 'gcr.io/cloud-foundation-cicd/$_DOCKER_IMAGE_DEVELOPER_TOOLS:$_DOCKER_TAG_VERSION_DEVELOPER_TOOLS'
203203
args: ['/bin/bash', '-c', 'cft test run TestAll/examples/bidirectional-firewall-rules --stage apply --verbose']
204204
- id: verify firewall-rule

examples/global-network-firewall-policy/main.tf

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ resource "google_compute_network" "network" {
3434
name = "${local.prefix}-network"
3535
}
3636

37+
resource "google_compute_network" "network_backup" {
38+
project = var.project_id
39+
name = "${local.prefix}-network-backup"
40+
}
41+
3742
resource "google_tags_tag_key" "tag_key" {
3843

3944
description = "For keyname resources."
@@ -74,7 +79,10 @@ module "firewal_policy" {
7479
project_id = var.project_id
7580
policy_name = "${local.prefix}-firewall-policy-${random_string.random_suffix.result}"
7681
description = "test ${local.prefix} firewall policy"
77-
target_vpcs = ["projects/${var.project_id}/global/networks/${local.prefix}-network"]
82+
target_vpcs = [
83+
"projects/${var.project_id}/global/networks/${local.prefix}-network",
84+
"projects/${var.project_id}/global/networks/${local.prefix}-network-backup",
85+
]
7886

7987
rules = [
8088
{

examples/regional-network-firewall-policy/main.tf

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ resource "google_compute_network" "network" {
3636
name = "${local.prefix}-network"
3737
}
3838

39+
resource "google_compute_network" "network_backup" {
40+
project = var.project_id
41+
name = "${local.prefix}-network-backup"
42+
}
43+
3944
resource "google_tags_tag_key" "tag_key" {
4045

4146
description = "For keyname resources."
@@ -73,11 +78,15 @@ resource "google_service_account" "service_account" {
7378
}
7479

7580
module "firewal_policy" {
76-
source = "../../modules/network-firewall-policy"
77-
project_id = var.project_id
78-
policy_name = "${local.prefix}-firewall-policy-${random_string.random_suffix.result}"
79-
description = "test ${local.prefix} firewall policy"
80-
target_vpcs = ["projects/${var.project_id}/global/networks/${local.prefix}-network"]
81+
source = "../../modules/network-firewall-policy"
82+
project_id = var.project_id
83+
policy_name = "${local.prefix}-firewall-policy-${random_string.random_suffix.result}"
84+
description = "test ${local.prefix} firewall policy"
85+
target_vpcs = [
86+
"projects/${var.project_id}/global/networks/${local.prefix}-network",
87+
"projects/${var.project_id}/global/networks/${local.prefix}-network-backup",
88+
]
89+
8190
policy_region = local.location
8291

8392
rules = [

modules/network-firewall-policy/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ There are examples included for [global](https://github.com/terraform-google-mod
2929
```hcl
3030
module "firewall_rules" {
3131
source = "terraform-google-modules/network/google//modules/network-firewall-policy"
32-
version = "~> 8.0"
32+
version = "~> 7.2"
3333
project_id = var.project_id
3434
policy_name = "my-firewall-policy"
3535
description = "Test firewall policy"
@@ -173,7 +173,7 @@ In a [firewall policy rule](https://cloud.google.com/firewall/docs/firewall-poli
173173
enable_logging = true
174174
target_secure_tags = ["tagValues/${google_tags_tag_value.tag_value.name}",]
175175
target_service_accounts = ["fw-test-svc-acct@$my-project-id.iam.gserviceaccount.com"]
176-
match = object({
176+
match = {
177177
src_ip_ranges = ["10.100.0.2"]
178178
src_fqdns = []
179179
src_region_codes = []

modules/network-firewall-policy/main.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ resource "google_compute_network_firewall_policy" "fw_policy" {
3030

3131
resource "google_compute_network_firewall_policy_association" "vpc_associations" {
3232
for_each = local.global && length(var.target_vpcs) > 0 ? { for x in var.target_vpcs : base64encode(x) => x } : {}
33-
name = local.prefix
33+
name = "${local.prefix}-${element(split("/", each.value), length(split("/", each.value)) - 1)}"
3434
attachment_target = each.value
3535
firewall_policy = google_compute_network_firewall_policy.fw_policy[0].name
3636
project = var.project_id
@@ -103,7 +103,7 @@ resource "google_compute_region_network_firewall_policy" "fw_policy" {
103103

104104
resource "google_compute_region_network_firewall_policy_association" "vpc_associations" {
105105
for_each = !local.global && length(var.target_vpcs) > 0 ? { for x in var.target_vpcs : base64encode(x) => x } : {}
106-
name = local.prefix
106+
name = "${local.prefix}-${element(split("/", each.value), length(split("/", each.value)) - 1)}"
107107
attachment_target = each.value
108108
firewall_policy = google_compute_region_network_firewall_policy.fw_policy[0].name
109109
project = var.project_id

0 commit comments

Comments
 (0)