Skip to content

Commit 1b5ebba

Browse files
committed
add shadow_firewall_rules_log_config and shadow_firewall_rules_priority validation
1 parent 666a991 commit 1b5ebba

File tree

2 files changed

+43
-14
lines changed

2 files changed

+43
-14
lines changed

autogen/main/firewall.tf.tmpl

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,11 @@ resource "google_compute_firewall" "shadow_allow_pods" {
155155
allow { protocol = "esp" }
156156
allow { protocol = "ah" }
157157

158-
log_config {
159-
metadata = "INCLUDE_ALL_METADATA"
158+
dynamic "log_config" {
159+
for_each = var.shadow_firewall_rules_log_config == null ? [] : [var.shadow_firewall_rules_log_config]
160+
content {
161+
metadata = log_config.value.metadata
162+
}
160163
}
161164
}
162165

@@ -178,8 +181,11 @@ resource "google_compute_firewall" "shadow_allow_master" {
178181
ports = ["10250", "443"]
179182
}
180183

181-
log_config {
182-
metadata = "INCLUDE_ALL_METADATA"
184+
dynamic "log_config" {
185+
for_each = var.shadow_firewall_rules_log_config == null ? [] : [var.shadow_firewall_rules_log_config]
186+
content {
187+
metadata = log_config.value.metadata
188+
}
183189
}
184190
}
185191

@@ -210,8 +216,11 @@ resource "google_compute_firewall" "shadow_allow_nodes" {
210216
ports = ["1-65535"]
211217
}
212218

213-
log_config {
214-
metadata = "INCLUDE_ALL_METADATA"
219+
dynamic "log_config" {
220+
for_each = var.shadow_firewall_rules_log_config == null ? [] : [var.shadow_firewall_rules_log_config]
221+
content {
222+
metadata = log_config.value.metadata
223+
}
215224
}
216225
}
217226

@@ -222,7 +231,7 @@ resource "google_compute_firewall" "shadow_allow_inkubelet" {
222231
description = "Managed by terraform GKE module: A shadow firewall rule to match the default rule allowing worker nodes & pods communication to kubelet."
223232
project = local.network_project_id
224233
network = var.network
225-
priority = min(998, var.shadow_firewall_rules_priority) # rule created by GKE robot have prio 999
234+
priority = var.shadow_firewall_rules_priority - 1 # rule created by GKE robot have prio 999
226235
direction = "INGRESS"
227236

228237
source_ranges = local.pod_all_ip_ranges
@@ -234,8 +243,11 @@ resource "google_compute_firewall" "shadow_allow_inkubelet" {
234243
ports = ["10255"]
235244
}
236245

237-
log_config {
238-
metadata = "INCLUDE_ALL_METADATA"
246+
dynamic "log_config" {
247+
for_each = var.shadow_firewall_rules_log_config == null ? [] : [var.shadow_firewall_rules_log_config]
248+
content {
249+
metadata = log_config.value.metadata
250+
}
239251
}
240252
}
241253

@@ -246,7 +258,7 @@ resource "google_compute_firewall" "shadow_deny_exkubelet" {
246258
description = "Managed by terraform GKE module: A shadow firewall rule to match the default deny rule to kubelet."
247259
project = local.network_project_id
248260
network = var.network
249-
priority = min(999, var.shadow_firewall_rules_priority) # rule created by GKE robot have prio 1000
261+
priority = var.shadow_firewall_rules_priority # rule created by GKE robot have prio 1000
250262
direction = "INGRESS"
251263

252264
source_ranges = ["0.0.0.0/0"]
@@ -257,7 +269,10 @@ resource "google_compute_firewall" "shadow_deny_exkubelet" {
257269
ports = ["10255"]
258270
}
259271

260-
log_config {
261-
metadata = "INCLUDE_ALL_METADATA"
272+
dynamic "log_config" {
273+
for_each = var.shadow_firewall_rules_log_config == null ? [] : [var.shadow_firewall_rules_log_config]
274+
content {
275+
metadata = log_config.value.metadata
276+
}
262277
}
263278
}

autogen/main/variables.tf.tmpl

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -475,9 +475,23 @@ variable "add_shadow_firewall_rules" {
475475
}
476476

477477
variable "shadow_firewall_rules_priority" {
478-
type = number
478+
type = number
479479
description = "The firewall priority of GKE shadow firewall rules. The priority should be less than default firewall, which is 1000."
480-
default = 999
480+
default = 999
481+
validation {
482+
condition = var.shadow_firewall_rules_priority < 1000
483+
error_message = "The shadow firewall rule priority must be lower than auto-created one(1000)."
484+
}
485+
}
486+
487+
variable "shadow_firewall_rules_log_config" {
488+
type = object({
489+
metadata = string
490+
})
491+
description = "The log_config for shadow firewall rules. You can set this variable to `null` to disable logging."
492+
default = {
493+
metadata = "INCLUDE_ALL_METADATA"
494+
}
481495
}
482496

483497
{% if beta_cluster %}

0 commit comments

Comments
 (0)