Skip to content

Commit

Permalink
fix: add insecureKubeletReadonlyPortEnabled to node_config
Browse files Browse the repository at this point in the history
Add `insecureKubeletReadonlyPortEnabled` to `node_config.kubelet_config`
for the default node-pool and for additional pools. It may also be
necessary to define the top level `node_config` more broadly for the
case where `remove_default_node_pool` is set to false, which should
probably be handled separately.

Also, the upstream provider (intentionally) uses an enum of `"TRUE"` /
`"FALSE"` vs. a boolean. Update the code to follow this, and add a test
case that covers the cluster level setting vs node pool one.

Fixes terraform-google-modules#2013

Co-authored-by: Andrew Peabody <[email protected]>
  • Loading branch information
wyardley and apeabody committed Oct 17, 2024
1 parent cccabcb commit bd221b2
Show file tree
Hide file tree
Showing 12 changed files with 110 additions and 25 deletions.
14 changes: 12 additions & 2 deletions autogen/main/cluster.tf.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -530,6 +530,16 @@ resource "google_container_cluster" "primary" {
}
}

# In the case of the default pool use the module level variable as a
# fallback if it's not set explicitly for this pool.
dynamic "kubelet_config" {
for_each = lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled) != null ? [lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled)] : []

content {
insecure_kubelet_readonly_port_enabled = upper(tostring(kubelet_config.value))
}
}

service_account = lookup(var.node_pools[0], "service_account", local.service_account)

tags = concat(
Expand Down Expand Up @@ -679,7 +689,7 @@ resource "google_container_cluster" "primary" {
enabled = var.enable_gcfs
}
{% endif %}
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? upper(tostring(var.insecure_kubelet_readonly_port_enabled)) : null
{% endif %}
}
}
Expand Down Expand Up @@ -1054,7 +1064,7 @@ resource "google_container_node_pool" "windows_pools" {
cpu_manager_policy = lookup(each.value, "cpu_manager_policy", "static")
cpu_cfs_quota = lookup(each.value, "cpu_cfs_quota", null)
cpu_cfs_quota_period = lookup(each.value, "cpu_cfs_quota_period", null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", null) != null ? upper(tostring(each.value.insecure_kubelet_readonly_port_enabled)) : null
pod_pids_limit = lookup(each.value, "pod_pids_limit", null)
}
}
Expand Down
16 changes: 13 additions & 3 deletions cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,16 @@ resource "google_container_cluster" "primary" {
}
}

# In the case of the default pool use the module level variable as a
# fallback if it's not set explicitly for this pool.
dynamic "kubelet_config" {
for_each = lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled) != null ? [lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled)] : []

content {
insecure_kubelet_readonly_port_enabled = upper(tostring(kubelet_config.value))
}
}

service_account = lookup(var.node_pools[0], "service_account", local.service_account)

tags = concat(
Expand Down Expand Up @@ -503,7 +513,7 @@ resource "google_container_cluster" "primary" {

node_pool_defaults {
node_config_defaults {
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? upper(tostring(var.insecure_kubelet_readonly_port_enabled)) : null
}
}

Expand Down Expand Up @@ -753,7 +763,7 @@ resource "google_container_node_pool" "pools" {
cpu_manager_policy = lookup(each.value, "cpu_manager_policy", "static")
cpu_cfs_quota = lookup(each.value, "cpu_cfs_quota", null)
cpu_cfs_quota_period = lookup(each.value, "cpu_cfs_quota_period", null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", null) != null ? upper(tostring(each.value.insecure_kubelet_readonly_port_enabled)) : null
pod_pids_limit = lookup(each.value, "pod_pids_limit", null)
}
}
Expand Down Expand Up @@ -1044,7 +1054,7 @@ resource "google_container_node_pool" "windows_pools" {
cpu_manager_policy = lookup(each.value, "cpu_manager_policy", "static")
cpu_cfs_quota = lookup(each.value, "cpu_cfs_quota", null)
cpu_cfs_quota_period = lookup(each.value, "cpu_cfs_quota_period", null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", null) != null ? upper(tostring(each.value.insecure_kubelet_readonly_port_enabled)) : null
pod_pids_limit = lookup(each.value, "pod_pids_limit", null)
}
}
Expand Down
2 changes: 1 addition & 1 deletion examples/node_pool/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ module "gke" {
sandbox_enabled = true
cpu_manager_policy = "static"
cpu_cfs_quota = true
insecure_kubelet_readonly_port_enabled = "FALSE"
insecure_kubelet_readonly_port_enabled = false
local_ssd_ephemeral_count = 2
pod_pids_limit = 4096
},
Expand Down
2 changes: 1 addition & 1 deletion examples/node_pool_update_variant/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ module "gke" {
max_count = 2
service_account = var.compute_engine_service_account
auto_upgrade = true
insecure_kubelet_readonly_port_enabled = "FALSE"
insecure_kubelet_readonly_port_enabled = false
},
{
name = "pool-02"
Expand Down
2 changes: 2 additions & 0 deletions examples/private_zonal_with_networking/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ module "gke" {
master_ipv4_cidr_block = "172.16.0.0/28"
deletion_protection = false

insecure_kubelet_readonly_port_enabled = false

master_authorized_networks = [
{
cidr_block = data.google_compute_subnetwork.subnetwork.ip_cidr_range
Expand Down
16 changes: 13 additions & 3 deletions modules/beta-private-cluster-update-variant/cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,16 @@ resource "google_container_cluster" "primary" {
}
}

# In the case of the default pool use the module level variable as a
# fallback if it's not set explicitly for this pool.
dynamic "kubelet_config" {
for_each = lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled) != null ? [lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled)] : []

content {
insecure_kubelet_readonly_port_enabled = upper(tostring(kubelet_config.value))
}
}

service_account = lookup(var.node_pools[0], "service_account", local.service_account)

tags = concat(
Expand Down Expand Up @@ -581,7 +591,7 @@ resource "google_container_cluster" "primary" {
gcfs_config {
enabled = var.enable_gcfs
}
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? upper(tostring(var.insecure_kubelet_readonly_port_enabled)) : null
}
}

Expand Down Expand Up @@ -923,7 +933,7 @@ resource "google_container_node_pool" "pools" {
cpu_manager_policy = lookup(each.value, "cpu_manager_policy", "static")
cpu_cfs_quota = lookup(each.value, "cpu_cfs_quota", null)
cpu_cfs_quota_period = lookup(each.value, "cpu_cfs_quota_period", null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", null) != null ? upper(tostring(each.value.insecure_kubelet_readonly_port_enabled)) : null
pod_pids_limit = lookup(each.value, "pod_pids_limit", null)
}
}
Expand Down Expand Up @@ -1228,7 +1238,7 @@ resource "google_container_node_pool" "windows_pools" {
cpu_manager_policy = lookup(each.value, "cpu_manager_policy", "static")
cpu_cfs_quota = lookup(each.value, "cpu_cfs_quota", null)
cpu_cfs_quota_period = lookup(each.value, "cpu_cfs_quota_period", null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", null) != null ? upper(tostring(each.value.insecure_kubelet_readonly_port_enabled)) : null
pod_pids_limit = lookup(each.value, "pod_pids_limit", null)
}
}
Expand Down
16 changes: 13 additions & 3 deletions modules/beta-private-cluster/cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,16 @@ resource "google_container_cluster" "primary" {
}
}

# In the case of the default pool use the module level variable as a
# fallback if it's not set explicitly for this pool.
dynamic "kubelet_config" {
for_each = lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled) != null ? [lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled)] : []

content {
insecure_kubelet_readonly_port_enabled = upper(tostring(kubelet_config.value))
}
}

service_account = lookup(var.node_pools[0], "service_account", local.service_account)

tags = concat(
Expand Down Expand Up @@ -581,7 +591,7 @@ resource "google_container_cluster" "primary" {
gcfs_config {
enabled = var.enable_gcfs
}
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? upper(tostring(var.insecure_kubelet_readonly_port_enabled)) : null
}
}

Expand Down Expand Up @@ -838,7 +848,7 @@ resource "google_container_node_pool" "pools" {
cpu_manager_policy = lookup(each.value, "cpu_manager_policy", "static")
cpu_cfs_quota = lookup(each.value, "cpu_cfs_quota", null)
cpu_cfs_quota_period = lookup(each.value, "cpu_cfs_quota_period", null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", null) != null ? upper(tostring(each.value.insecure_kubelet_readonly_port_enabled)) : null
pod_pids_limit = lookup(each.value, "pod_pids_limit", null)
}
}
Expand Down Expand Up @@ -1142,7 +1152,7 @@ resource "google_container_node_pool" "windows_pools" {
cpu_manager_policy = lookup(each.value, "cpu_manager_policy", "static")
cpu_cfs_quota = lookup(each.value, "cpu_cfs_quota", null)
cpu_cfs_quota_period = lookup(each.value, "cpu_cfs_quota_period", null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", null) != null ? upper(tostring(each.value.insecure_kubelet_readonly_port_enabled)) : null
pod_pids_limit = lookup(each.value, "pod_pids_limit", null)
}
}
Expand Down
16 changes: 13 additions & 3 deletions modules/beta-public-cluster-update-variant/cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,16 @@ resource "google_container_cluster" "primary" {
}
}

# In the case of the default pool use the module level variable as a
# fallback if it's not set explicitly for this pool.
dynamic "kubelet_config" {
for_each = lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled) != null ? [lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled)] : []

content {
insecure_kubelet_readonly_port_enabled = upper(tostring(kubelet_config.value))
}
}

service_account = lookup(var.node_pools[0], "service_account", local.service_account)

tags = concat(
Expand Down Expand Up @@ -560,7 +570,7 @@ resource "google_container_cluster" "primary" {
gcfs_config {
enabled = var.enable_gcfs
}
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? upper(tostring(var.insecure_kubelet_readonly_port_enabled)) : null
}
}

Expand Down Expand Up @@ -902,7 +912,7 @@ resource "google_container_node_pool" "pools" {
cpu_manager_policy = lookup(each.value, "cpu_manager_policy", "static")
cpu_cfs_quota = lookup(each.value, "cpu_cfs_quota", null)
cpu_cfs_quota_period = lookup(each.value, "cpu_cfs_quota_period", null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", null) != null ? upper(tostring(each.value.insecure_kubelet_readonly_port_enabled)) : null
pod_pids_limit = lookup(each.value, "pod_pids_limit", null)
}
}
Expand Down Expand Up @@ -1207,7 +1217,7 @@ resource "google_container_node_pool" "windows_pools" {
cpu_manager_policy = lookup(each.value, "cpu_manager_policy", "static")
cpu_cfs_quota = lookup(each.value, "cpu_cfs_quota", null)
cpu_cfs_quota_period = lookup(each.value, "cpu_cfs_quota_period", null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", null) != null ? upper(tostring(each.value.insecure_kubelet_readonly_port_enabled)) : null
pod_pids_limit = lookup(each.value, "pod_pids_limit", null)
}
}
Expand Down
16 changes: 13 additions & 3 deletions modules/beta-public-cluster/cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,16 @@ resource "google_container_cluster" "primary" {
}
}

# In the case of the default pool use the module level variable as a
# fallback if it's not set explicitly for this pool.
dynamic "kubelet_config" {
for_each = lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled) != null ? [lookup(var.node_pools[0], "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled)] : []

content {
insecure_kubelet_readonly_port_enabled = upper(tostring(kubelet_config.value))
}
}

service_account = lookup(var.node_pools[0], "service_account", local.service_account)

tags = concat(
Expand Down Expand Up @@ -560,7 +570,7 @@ resource "google_container_cluster" "primary" {
gcfs_config {
enabled = var.enable_gcfs
}
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null
insecure_kubelet_readonly_port_enabled = var.insecure_kubelet_readonly_port_enabled != null ? upper(tostring(var.insecure_kubelet_readonly_port_enabled)) : null
}
}

Expand Down Expand Up @@ -817,7 +827,7 @@ resource "google_container_node_pool" "pools" {
cpu_manager_policy = lookup(each.value, "cpu_manager_policy", "static")
cpu_cfs_quota = lookup(each.value, "cpu_cfs_quota", null)
cpu_cfs_quota_period = lookup(each.value, "cpu_cfs_quota_period", null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", null) != null ? upper(tostring(each.value.insecure_kubelet_readonly_port_enabled)) : null
pod_pids_limit = lookup(each.value, "pod_pids_limit", null)
}
}
Expand Down Expand Up @@ -1121,7 +1131,7 @@ resource "google_container_node_pool" "windows_pools" {
cpu_manager_policy = lookup(each.value, "cpu_manager_policy", "static")
cpu_cfs_quota = lookup(each.value, "cpu_cfs_quota", null)
cpu_cfs_quota_period = lookup(each.value, "cpu_cfs_quota_period", null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", var.insecure_kubelet_readonly_port_enabled != null ? var.insecure_kubelet_readonly_port_enabled : null)
insecure_kubelet_readonly_port_enabled = lookup(each.value, "insecure_kubelet_readonly_port_enabled", null) != null ? upper(tostring(each.value.insecure_kubelet_readonly_port_enabled)) : null
pod_pids_limit = lookup(each.value, "pod_pids_limit", null)
}
}
Expand Down
Loading

0 comments on commit bd221b2

Please sign in to comment.