Skip to content

Commit 263c89b

Browse files
committed
fix: updated the variable to use map instead of list
1 parent a04358e commit 263c89b

File tree

3 files changed

+39
-24
lines changed

3 files changed

+39
-24
lines changed

examples/internal-lb-cloud-run/main.tf

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ module "backend-service-region-b" {
9595
}
9696

9797
module "internal-lb-http-backend" {
98-
source = "terraform-google-modules/lb-http/google//modules/backend"
99-
version = "~> 12.0"
98+
source = "../../modules/backend"
99+
#version = "~> 12.0"
100100

101101
project_id = var.project_id
102102
name = "int-lb-http-backend"
@@ -110,18 +110,22 @@ module "internal-lb-http-backend" {
110110
}
111111

112112
module "internal-lb-http-frontend" {
113-
source = "terraform-google-modules/lb-http/google//modules/frontend"
114-
version = "~> 12.0"
113+
source = "../../modules/frontend"
114+
#version = "~> 12.0"
115115

116116
project_id = var.project_id
117117
name = "int-lb-http-frontend"
118118
url_map_input = module.internal-lb-http-backend.backend_service_info
119119
network = google_compute_network.internal_lb_network.name
120120
load_balancing_scheme = "INTERNAL_MANAGED"
121-
internal_forwarding_rule_subnetworks = [
122-
google_compute_subnetwork.internal_lb_subnet_a.id,
123-
google_compute_subnetwork.internal_lb_subnet_b.id
124-
]
121+
internal_forwarding_rule_configs = {
122+
"1" : {
123+
"subnetwork" : google_compute_subnetwork.internal_lb_subnet_a.id
124+
},
125+
"2" : {
126+
"subnetwork" : google_compute_subnetwork.internal_lb_subnet_b.id
127+
}
128+
}
125129
depends_on = [google_compute_subnetwork.internal_lb_proxy_only_a, google_compute_subnetwork.internal_lb_proxy_only_b]
126130
}
127131

modules/frontend/main.tf

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,18 @@ resource "google_compute_global_forwarding_rule" "http" {
5858
}
5959

6060
resource "google_compute_global_forwarding_rule" "internal_managed_http" {
61-
count = local.create_http_forward && local.is_internal_managed ? length(var.internal_forwarding_rule_subnetworks) : 0
61+
for_each = local.create_http_forward && local.is_internal_managed ? var.internal_forwarding_rule_configs : {}
6262

6363
provider = google-beta
6464
project = var.project_id
65-
name = "${var.name}-internal-managed-http-${count.index}"
65+
name = "${var.name}-internal-managed-http-${each.key}"
6666
target = google_compute_target_http_proxy.default[0].self_link
6767
port_range = var.http_port
6868
labels = var.labels
6969
load_balancing_scheme = var.load_balancing_scheme
7070
network = local.internal_network
71-
subnetwork = var.internal_forwarding_rule_subnetworks[count.index]
71+
subnetwork = each.value.subnetwork
72+
ip_address = each.value.address
7273
}
7374

7475
resource "google_compute_global_forwarding_rule" "https" {
@@ -85,22 +86,23 @@ resource "google_compute_global_forwarding_rule" "https" {
8586
}
8687

8788
resource "google_compute_global_forwarding_rule" "internal_managed_https" {
88-
count = var.ssl && local.is_internal_managed ? length(var.internal_forwarding_rule_subnetworks) : 0
89+
for_each = var.ssl && local.is_internal_managed ? var.internal_forwarding_rule_configs : {}
8990

9091
provider = google-beta
9192
project = var.project_id
92-
name = "${var.name}-internal-managed-https-${count.index}"
93+
name = "${var.name}-internal-managed-https-${each.key}"
9394
target = google_compute_target_https_proxy.default[0].self_link
9495
port_range = var.https_port
9596
labels = var.labels
9697
load_balancing_scheme = var.load_balancing_scheme
9798
network = local.internal_network
98-
subnetwork = var.internal_forwarding_rule_subnetworks[count.index]
99+
subnetwork = each.value.subnetwork
100+
ip_address = each.value.address
99101
}
100102

101103
resource "google_compute_global_address" "default" {
102104
provider = google-beta
103-
count = local.is_internal_self_managed ? 0 : var.create_address ? 1 : 0
105+
count = local.is_internal_self_managed || local.is_internal_managed ? 0 : var.create_address ? 1 : 0
104106
project = var.project_id
105107
name = "${var.name}-address"
106108
ip_version = "IPV4"
@@ -123,17 +125,17 @@ resource "google_compute_global_forwarding_rule" "http_ipv6" {
123125
}
124126

125127
resource "google_compute_global_forwarding_rule" "internal_managed_http_ipv6" {
126-
count = var.enable_ipv6 && local.create_http_forward && local.is_internal_managed ? length(var.internal_forwarding_rule_subnetworks) : 0
128+
for_each = var.enable_ipv6 && local.create_http_forward && local.is_internal_managed ? var.internal_forwarding_rule_configs : {}
127129

128130
provider = google-beta
129131
project = var.project_id
130-
name = "${var.name}-internal-managed-http-ipv6-${count.index}"
132+
name = "${var.name}-internal-managed-http-ipv6-${each.key}"
131133
target = google_compute_target_http_proxy.default[0].self_link
132134
port_range = "80"
133135
labels = var.labels
134136
load_balancing_scheme = var.load_balancing_scheme
135-
network = local.internal_network
136-
subnetwork = var.internal_forwarding_rule_subnetworks[count.index]
137+
subnetwork = each.value.subnetwork
138+
ip_address = each.value.address
137139
}
138140

139141
resource "google_compute_global_forwarding_rule" "https_ipv6" {
@@ -150,22 +152,22 @@ resource "google_compute_global_forwarding_rule" "https_ipv6" {
150152
}
151153

152154
resource "google_compute_global_forwarding_rule" "internal_managed_https_ipv6" {
153-
count = var.enable_ipv6 && var.ssl && local.is_internal_managed ? length(var.internal_forwarding_rule_subnetworks) : 0
155+
for_each = var.enable_ipv6 && var.ssl && local.is_internal_managed ? var.internal_forwarding_rule_configs : {}
154156

155157
provider = google-beta
156158
project = var.project_id
157-
name = "${var.name}-internal-managed-https-ipv6-${count.index}"
159+
name = "${var.name}-internal-managed-https-ipv6-${each.key}"
158160
target = google_compute_target_https_proxy.default[0].self_link
159161
port_range = "443"
160162
labels = var.labels
161163
load_balancing_scheme = var.load_balancing_scheme
162-
network = local.internal_network
163-
subnetwork = var.internal_forwarding_rule_subnetworks[count.index]
164+
subnetwork = each.value.subnetwork
165+
ip_address = each.value.address
164166
}
165167

166168
resource "google_compute_global_address" "default_ipv6" {
167169
provider = google-beta
168-
count = local.is_internal_self_managed ? 0 : (var.enable_ipv6 && var.create_ipv6_address) ? 1 : 0
170+
count = local.is_internal_self_managed || local.is_internal_managed ? 0 : (var.enable_ipv6 && var.create_ipv6_address) ? 1 : 0
169171
project = var.project_id
170172
name = "${var.name}-ipv6-address"
171173
ip_version = "IPV6"

modules/frontend/variables.tf

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,3 +204,12 @@ variable "internal_forwarding_rule_subnetworks" {
204204
type = list(string)
205205
default = []
206206
}
207+
208+
variable "internal_forwarding_rule_configs" {
209+
description = "Map of internal managed forwarding rule configs. One of 'address' or 'subnetwork' is required for each."
210+
type = map(object({
211+
address = optional(string)
212+
subnetwork = optional(string)
213+
}))
214+
default = {}
215+
}

0 commit comments

Comments
 (0)