diff --git a/README.md b/README.md index 7fc4457bed..cfa05efb90 100644 --- a/README.md +++ b/README.md @@ -250,6 +250,8 @@ Then perform the following commands on the root folder: | node\_pools\_resource\_manager\_tags | Map of maps containing resource manager tags by node-pool name | `map(map(string))` |
{| no | | node\_pools\_tags | Map of lists containing node network tags by node-pool name | `map(list(string))` |
"all": {},
"default-node-pool": {}
}
{| no | | node\_pools\_taints | Map of lists containing node taints by node-pool name | `map(list(object({ key = string, value = string, effect = string })))` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_defrag | Map of strings containing transparent hugepage defrag node config by node-pool name | `map(string)` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_enabled | Map of strings containing transparent hugepage enabled node config by node-pool name | `map(string)` |
"all": "",
"default-node-pool": ""
}
{| no | | non\_masquerade\_cidrs | List of strings in CIDR notation that specify the IP address ranges that do not use IP masquerading. | `list(string)` |
"all": "",
"default-node-pool": ""
}
[| no | | notification\_config\_topic | The desired Pub/Sub topic to which notifications will be sent by GKE. Format is projects/{project}/topics/{topic}. | `string` | `""` | no | | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | diff --git a/autogen/main/cluster.tf.tmpl b/autogen/main/cluster.tf.tmpl index 0dd5a4aec2..c054328ba9 100644 --- a/autogen/main/cluster.tf.tmpl +++ b/autogen/main/cluster.tf.tmpl @@ -1315,6 +1315,10 @@ resource "google_container_node_pool" "windows_pools" { local.node_pools_linux_node_configs_sysctls[each.value["name"]], local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] }, local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : {cgroup = local.node_pools_cgroup_mode[each.value["name"]]}, + local.node_pools_transparent_hugepage_enabled["all"] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled["all"] }, + local.node_pools_transparent_hugepage_enabled[each.value["name"]] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled[each.value["name"]] }, + local.node_pools_transparent_hugepage_defrag["all"] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag["all"] }, + local.node_pools_transparent_hugepage_defrag[each.value["name"]] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag[each.value["name"]] }, local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] }, local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] }, @@ -1326,7 +1330,9 @@ resource "google_container_node_pool" "windows_pools" { local.node_pools_linux_node_configs_sysctls["all"], local.node_pools_linux_node_configs_sysctls[each.value["name"]] ) - cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + transparent_hugepage_enabled = try(coalesce(local.node_pools_transparent_hugepage_enabled[each.value["name"]], local.node_pools_transparent_hugepage_enabled["all"]), null) + transparent_hugepage_defrag = try(coalesce(local.node_pools_transparent_hugepage_defrag[each.value["name"]], local.node_pools_transparent_hugepage_defrag["all"]), null) dynamic "hugepages_config" { for_each = length(merge( local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, diff --git a/autogen/main/variables.tf.tmpl b/autogen/main/variables.tf.tmpl index e0bb56bd16..6b9d8f6ba7 100644 --- a/autogen/main/variables.tf.tmpl +++ b/autogen/main/variables.tf.tmpl @@ -274,6 +274,28 @@ variable "node_pools_cgroup_mode" { } } +variable "node_pools_transparent_hugepage_enabled" { + type = map(string) + description = "Map of strings containing transparent hugepage enabled node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + +variable "node_pools_transparent_hugepage_defrag" { + type = map(string) + description = "Map of strings containing transparent hugepage defrag node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + variable "node_pools_hugepage_size_2m" { type = map(string) description = "Map of strings containing hugepage size 2m node config by node-pool name" diff --git a/autogen/main/variables_defaults.tf.tmpl b/autogen/main/variables_defaults.tf.tmpl index 95138d7d1f..55ce39935c 100644 --- a/autogen/main/variables_defaults.tf.tmpl +++ b/autogen/main/variables_defaults.tf.tmpl @@ -139,6 +139,26 @@ locals { var.node_pools_cgroup_mode ) + node_pools_transparent_hugepage_enabled = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_enabled + ) + + node_pools_transparent_hugepage_defrag = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_defrag + ) + node_pools_hugepage_size_2m = merge( { all = "" }, { default-node-pool = "" }, diff --git a/cluster.tf b/cluster.tf index e9f0765be3..6eadb617a4 100644 --- a/cluster.tf +++ b/cluster.tf @@ -997,6 +997,10 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls[each.value["name"]], local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] }, local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] }, + local.node_pools_transparent_hugepage_enabled["all"] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled["all"] }, + local.node_pools_transparent_hugepage_enabled[each.value["name"]] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled[each.value["name"]] }, + local.node_pools_transparent_hugepage_defrag["all"] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag["all"] }, + local.node_pools_transparent_hugepage_defrag[each.value["name"]] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag[each.value["name"]] }, local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] }, local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] }, @@ -1008,7 +1012,9 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls["all"], local.node_pools_linux_node_configs_sysctls[each.value["name"]] ) - cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + transparent_hugepage_enabled = try(coalesce(local.node_pools_transparent_hugepage_enabled[each.value["name"]], local.node_pools_transparent_hugepage_enabled["all"]), null) + transparent_hugepage_defrag = try(coalesce(local.node_pools_transparent_hugepage_defrag[each.value["name"]], local.node_pools_transparent_hugepage_defrag["all"]), null) dynamic "hugepages_config" { for_each = length(merge( local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, diff --git a/metadata.display.yaml b/metadata.display.yaml index 52c2d68f03..9c6accecb8 100644 --- a/metadata.display.yaml +++ b/metadata.display.yaml @@ -360,6 +360,12 @@ spec: node_pools_taints: name: node_pools_taints title: Node Pools Taints + node_pools_transparent_hugepage_defrag: + name: node_pools_transparent_hugepage_defrag + title: Node Pools Transparent Hugepage Defrag + node_pools_transparent_hugepage_enabled: + name: node_pools_transparent_hugepage_enabled + title: Node Pools Transparent Hugepage Enabled non_masquerade_cidrs: name: non_masquerade_cidrs title: Non Masquerade Cidrs diff --git a/metadata.yaml b/metadata.yaml index a31fae14e0..e7f90ea401 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -315,6 +315,18 @@ spec: defaultValue: all: "" default-node-pool: "" + - name: node_pools_transparent_hugepage_enabled + description: Map of strings containing transparent hugepage enabled node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" + - name: node_pools_transparent_hugepage_defrag + description: Map of strings containing transparent hugepage defrag node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" - name: node_pools_hugepage_size_2m description: Map of strings containing hugepage size 2m node config by node-pool name varType: map(string) diff --git a/modules/beta-private-cluster-update-variant/README.md b/modules/beta-private-cluster-update-variant/README.md index 353a3cd865..4600623c56 100644 --- a/modules/beta-private-cluster-update-variant/README.md +++ b/modules/beta-private-cluster-update-variant/README.md @@ -294,6 +294,8 @@ Then perform the following commands on the root folder: | node\_pools\_resource\_manager\_tags | Map of maps containing resource manager tags by node-pool name | `map(map(string))` |
"10.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16"
]
{| no | | node\_pools\_tags | Map of lists containing node network tags by node-pool name | `map(list(string))` |
"all": {},
"default-node-pool": {}
}
{| no | | node\_pools\_taints | Map of lists containing node taints by node-pool name | `map(list(object({ key = string, value = string, effect = string })))` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_defrag | Map of strings containing transparent hugepage defrag node config by node-pool name | `map(string)` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_enabled | Map of strings containing transparent hugepage enabled node config by node-pool name | `map(string)` |
"all": "",
"default-node-pool": ""
}
{| no | | non\_masquerade\_cidrs | List of strings in CIDR notation that specify the IP address ranges that do not use IP masquerading. | `list(string)` |
"all": "",
"default-node-pool": ""
}
[| no | | notification\_config\_topic | The desired Pub/Sub topic to which notifications will be sent by GKE. Format is projects/{project}/topics/{topic}. | `string` | `""` | no | | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | diff --git a/modules/beta-private-cluster-update-variant/cluster.tf b/modules/beta-private-cluster-update-variant/cluster.tf index 010851c0cc..172961bb69 100644 --- a/modules/beta-private-cluster-update-variant/cluster.tf +++ b/modules/beta-private-cluster-update-variant/cluster.tf @@ -1163,6 +1163,10 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls[each.value["name"]], local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] }, local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] }, + local.node_pools_transparent_hugepage_enabled["all"] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled["all"] }, + local.node_pools_transparent_hugepage_enabled[each.value["name"]] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled[each.value["name"]] }, + local.node_pools_transparent_hugepage_defrag["all"] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag["all"] }, + local.node_pools_transparent_hugepage_defrag[each.value["name"]] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag[each.value["name"]] }, local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] }, local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] }, @@ -1174,7 +1178,9 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls["all"], local.node_pools_linux_node_configs_sysctls[each.value["name"]] ) - cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + transparent_hugepage_enabled = try(coalesce(local.node_pools_transparent_hugepage_enabled[each.value["name"]], local.node_pools_transparent_hugepage_enabled["all"]), null) + transparent_hugepage_defrag = try(coalesce(local.node_pools_transparent_hugepage_defrag[each.value["name"]], local.node_pools_transparent_hugepage_defrag["all"]), null) dynamic "hugepages_config" { for_each = length(merge( local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, diff --git a/modules/beta-private-cluster-update-variant/metadata.display.yaml b/modules/beta-private-cluster-update-variant/metadata.display.yaml index cc12f38bae..30cad10e2c 100644 --- a/modules/beta-private-cluster-update-variant/metadata.display.yaml +++ b/modules/beta-private-cluster-update-variant/metadata.display.yaml @@ -400,6 +400,12 @@ spec: node_pools_taints: name: node_pools_taints title: Node Pools Taints + node_pools_transparent_hugepage_defrag: + name: node_pools_transparent_hugepage_defrag + title: Node Pools Transparent Hugepage Defrag + node_pools_transparent_hugepage_enabled: + name: node_pools_transparent_hugepage_enabled + title: Node Pools Transparent Hugepage Enabled non_masquerade_cidrs: name: non_masquerade_cidrs title: Non Masquerade Cidrs diff --git a/modules/beta-private-cluster-update-variant/metadata.yaml b/modules/beta-private-cluster-update-variant/metadata.yaml index 38c3c83664..b21b14c920 100644 --- a/modules/beta-private-cluster-update-variant/metadata.yaml +++ b/modules/beta-private-cluster-update-variant/metadata.yaml @@ -275,6 +275,18 @@ spec: defaultValue: all: "" default-node-pool: "" + - name: node_pools_transparent_hugepage_enabled + description: Map of strings containing transparent hugepage enabled node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" + - name: node_pools_transparent_hugepage_defrag + description: Map of strings containing transparent hugepage defrag node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" - name: node_pools_hugepage_size_2m description: Map of strings containing hugepage size 2m node config by node-pool name varType: map(string) diff --git a/modules/beta-private-cluster-update-variant/variables.tf b/modules/beta-private-cluster-update-variant/variables.tf index 2e1bc5b5ac..1af54bc8fd 100644 --- a/modules/beta-private-cluster-update-variant/variables.tf +++ b/modules/beta-private-cluster-update-variant/variables.tf @@ -254,6 +254,28 @@ variable "node_pools_cgroup_mode" { } } +variable "node_pools_transparent_hugepage_enabled" { + type = map(string) + description = "Map of strings containing transparent hugepage enabled node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + +variable "node_pools_transparent_hugepage_defrag" { + type = map(string) + description = "Map of strings containing transparent hugepage defrag node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + variable "node_pools_hugepage_size_2m" { type = map(string) description = "Map of strings containing hugepage size 2m node config by node-pool name" diff --git a/modules/beta-private-cluster-update-variant/variables_defaults.tf b/modules/beta-private-cluster-update-variant/variables_defaults.tf index efa9ecedd7..2627ff7739 100644 --- a/modules/beta-private-cluster-update-variant/variables_defaults.tf +++ b/modules/beta-private-cluster-update-variant/variables_defaults.tf @@ -138,6 +138,26 @@ locals { var.node_pools_cgroup_mode ) + node_pools_transparent_hugepage_enabled = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_enabled + ) + + node_pools_transparent_hugepage_defrag = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_defrag + ) + node_pools_hugepage_size_2m = merge( { all = "" }, { default-node-pool = "" }, diff --git a/modules/beta-private-cluster/README.md b/modules/beta-private-cluster/README.md index f305f18ec8..d4b4ee2228 100644 --- a/modules/beta-private-cluster/README.md +++ b/modules/beta-private-cluster/README.md @@ -272,6 +272,8 @@ Then perform the following commands on the root folder: | node\_pools\_resource\_manager\_tags | Map of maps containing resource manager tags by node-pool name | `map(map(string))` |
"10.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16"
]
{| no | | node\_pools\_tags | Map of lists containing node network tags by node-pool name | `map(list(string))` |
"all": {},
"default-node-pool": {}
}
{| no | | node\_pools\_taints | Map of lists containing node taints by node-pool name | `map(list(object({ key = string, value = string, effect = string })))` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_defrag | Map of strings containing transparent hugepage defrag node config by node-pool name | `map(string)` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_enabled | Map of strings containing transparent hugepage enabled node config by node-pool name | `map(string)` |
"all": "",
"default-node-pool": ""
}
{| no | | non\_masquerade\_cidrs | List of strings in CIDR notation that specify the IP address ranges that do not use IP masquerading. | `list(string)` |
"all": "",
"default-node-pool": ""
}
[| no | | notification\_config\_topic | The desired Pub/Sub topic to which notifications will be sent by GKE. Format is projects/{project}/topics/{topic}. | `string` | `""` | no | | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | diff --git a/modules/beta-private-cluster/cluster.tf b/modules/beta-private-cluster/cluster.tf index 4a7c30bbbf..398602de08 100644 --- a/modules/beta-private-cluster/cluster.tf +++ b/modules/beta-private-cluster/cluster.tf @@ -1077,6 +1077,10 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls[each.value["name"]], local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] }, local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] }, + local.node_pools_transparent_hugepage_enabled["all"] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled["all"] }, + local.node_pools_transparent_hugepage_enabled[each.value["name"]] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled[each.value["name"]] }, + local.node_pools_transparent_hugepage_defrag["all"] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag["all"] }, + local.node_pools_transparent_hugepage_defrag[each.value["name"]] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag[each.value["name"]] }, local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] }, local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] }, @@ -1088,7 +1092,9 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls["all"], local.node_pools_linux_node_configs_sysctls[each.value["name"]] ) - cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + transparent_hugepage_enabled = try(coalesce(local.node_pools_transparent_hugepage_enabled[each.value["name"]], local.node_pools_transparent_hugepage_enabled["all"]), null) + transparent_hugepage_defrag = try(coalesce(local.node_pools_transparent_hugepage_defrag[each.value["name"]], local.node_pools_transparent_hugepage_defrag["all"]), null) dynamic "hugepages_config" { for_each = length(merge( local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, diff --git a/modules/beta-private-cluster/metadata.display.yaml b/modules/beta-private-cluster/metadata.display.yaml index da59c10609..e301bb7457 100644 --- a/modules/beta-private-cluster/metadata.display.yaml +++ b/modules/beta-private-cluster/metadata.display.yaml @@ -400,6 +400,12 @@ spec: node_pools_taints: name: node_pools_taints title: Node Pools Taints + node_pools_transparent_hugepage_defrag: + name: node_pools_transparent_hugepage_defrag + title: Node Pools Transparent Hugepage Defrag + node_pools_transparent_hugepage_enabled: + name: node_pools_transparent_hugepage_enabled + title: Node Pools Transparent Hugepage Enabled non_masquerade_cidrs: name: non_masquerade_cidrs title: Non Masquerade Cidrs diff --git a/modules/beta-private-cluster/metadata.yaml b/modules/beta-private-cluster/metadata.yaml index a0e87a1fbc..bdb62c61e7 100644 --- a/modules/beta-private-cluster/metadata.yaml +++ b/modules/beta-private-cluster/metadata.yaml @@ -275,6 +275,18 @@ spec: defaultValue: all: "" default-node-pool: "" + - name: node_pools_transparent_hugepage_enabled + description: Map of strings containing transparent hugepage enabled node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" + - name: node_pools_transparent_hugepage_defrag + description: Map of strings containing transparent hugepage defrag node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" - name: node_pools_hugepage_size_2m description: Map of strings containing hugepage size 2m node config by node-pool name varType: map(string) diff --git a/modules/beta-private-cluster/variables.tf b/modules/beta-private-cluster/variables.tf index 2e1bc5b5ac..1af54bc8fd 100644 --- a/modules/beta-private-cluster/variables.tf +++ b/modules/beta-private-cluster/variables.tf @@ -254,6 +254,28 @@ variable "node_pools_cgroup_mode" { } } +variable "node_pools_transparent_hugepage_enabled" { + type = map(string) + description = "Map of strings containing transparent hugepage enabled node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + +variable "node_pools_transparent_hugepage_defrag" { + type = map(string) + description = "Map of strings containing transparent hugepage defrag node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + variable "node_pools_hugepage_size_2m" { type = map(string) description = "Map of strings containing hugepage size 2m node config by node-pool name" diff --git a/modules/beta-private-cluster/variables_defaults.tf b/modules/beta-private-cluster/variables_defaults.tf index efa9ecedd7..2627ff7739 100644 --- a/modules/beta-private-cluster/variables_defaults.tf +++ b/modules/beta-private-cluster/variables_defaults.tf @@ -138,6 +138,26 @@ locals { var.node_pools_cgroup_mode ) + node_pools_transparent_hugepage_enabled = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_enabled + ) + + node_pools_transparent_hugepage_defrag = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_defrag + ) + node_pools_hugepage_size_2m = merge( { all = "" }, { default-node-pool = "" }, diff --git a/modules/beta-public-cluster-update-variant/README.md b/modules/beta-public-cluster-update-variant/README.md index e671233cd7..bf0ccfbabf 100644 --- a/modules/beta-public-cluster-update-variant/README.md +++ b/modules/beta-public-cluster-update-variant/README.md @@ -283,6 +283,8 @@ Then perform the following commands on the root folder: | node\_pools\_resource\_manager\_tags | Map of maps containing resource manager tags by node-pool name | `map(map(string))` |
"10.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16"
]
{| no | | node\_pools\_tags | Map of lists containing node network tags by node-pool name | `map(list(string))` |
"all": {},
"default-node-pool": {}
}
{| no | | node\_pools\_taints | Map of lists containing node taints by node-pool name | `map(list(object({ key = string, value = string, effect = string })))` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_defrag | Map of strings containing transparent hugepage defrag node config by node-pool name | `map(string)` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_enabled | Map of strings containing transparent hugepage enabled node config by node-pool name | `map(string)` |
"all": "",
"default-node-pool": ""
}
{| no | | non\_masquerade\_cidrs | List of strings in CIDR notation that specify the IP address ranges that do not use IP masquerading. | `list(string)` |
"all": "",
"default-node-pool": ""
}
[| no | | notification\_config\_topic | The desired Pub/Sub topic to which notifications will be sent by GKE. Format is projects/{project}/topics/{topic}. | `string` | `""` | no | | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | diff --git a/modules/beta-public-cluster-update-variant/cluster.tf b/modules/beta-public-cluster-update-variant/cluster.tf index 1a8912df2d..eaa554a18c 100644 --- a/modules/beta-public-cluster-update-variant/cluster.tf +++ b/modules/beta-public-cluster-update-variant/cluster.tf @@ -1141,6 +1141,10 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls[each.value["name"]], local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] }, local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] }, + local.node_pools_transparent_hugepage_enabled["all"] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled["all"] }, + local.node_pools_transparent_hugepage_enabled[each.value["name"]] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled[each.value["name"]] }, + local.node_pools_transparent_hugepage_defrag["all"] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag["all"] }, + local.node_pools_transparent_hugepage_defrag[each.value["name"]] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag[each.value["name"]] }, local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] }, local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] }, @@ -1152,7 +1156,9 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls["all"], local.node_pools_linux_node_configs_sysctls[each.value["name"]] ) - cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + transparent_hugepage_enabled = try(coalesce(local.node_pools_transparent_hugepage_enabled[each.value["name"]], local.node_pools_transparent_hugepage_enabled["all"]), null) + transparent_hugepage_defrag = try(coalesce(local.node_pools_transparent_hugepage_defrag[each.value["name"]], local.node_pools_transparent_hugepage_defrag["all"]), null) dynamic "hugepages_config" { for_each = length(merge( local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, diff --git a/modules/beta-public-cluster-update-variant/metadata.display.yaml b/modules/beta-public-cluster-update-variant/metadata.display.yaml index 695bdcaec1..750662d7e9 100644 --- a/modules/beta-public-cluster-update-variant/metadata.display.yaml +++ b/modules/beta-public-cluster-update-variant/metadata.display.yaml @@ -385,6 +385,12 @@ spec: node_pools_taints: name: node_pools_taints title: Node Pools Taints + node_pools_transparent_hugepage_defrag: + name: node_pools_transparent_hugepage_defrag + title: Node Pools Transparent Hugepage Defrag + node_pools_transparent_hugepage_enabled: + name: node_pools_transparent_hugepage_enabled + title: Node Pools Transparent Hugepage Enabled non_masquerade_cidrs: name: non_masquerade_cidrs title: Non Masquerade Cidrs diff --git a/modules/beta-public-cluster-update-variant/metadata.yaml b/modules/beta-public-cluster-update-variant/metadata.yaml index 1dd3d16e06..824900e929 100644 --- a/modules/beta-public-cluster-update-variant/metadata.yaml +++ b/modules/beta-public-cluster-update-variant/metadata.yaml @@ -275,6 +275,18 @@ spec: defaultValue: all: "" default-node-pool: "" + - name: node_pools_transparent_hugepage_enabled + description: Map of strings containing transparent hugepage enabled node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" + - name: node_pools_transparent_hugepage_defrag + description: Map of strings containing transparent hugepage defrag node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" - name: node_pools_hugepage_size_2m description: Map of strings containing hugepage size 2m node config by node-pool name varType: map(string) diff --git a/modules/beta-public-cluster-update-variant/variables.tf b/modules/beta-public-cluster-update-variant/variables.tf index 690529e16e..1aa228ebc9 100644 --- a/modules/beta-public-cluster-update-variant/variables.tf +++ b/modules/beta-public-cluster-update-variant/variables.tf @@ -254,6 +254,28 @@ variable "node_pools_cgroup_mode" { } } +variable "node_pools_transparent_hugepage_enabled" { + type = map(string) + description = "Map of strings containing transparent hugepage enabled node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + +variable "node_pools_transparent_hugepage_defrag" { + type = map(string) + description = "Map of strings containing transparent hugepage defrag node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + variable "node_pools_hugepage_size_2m" { type = map(string) description = "Map of strings containing hugepage size 2m node config by node-pool name" diff --git a/modules/beta-public-cluster-update-variant/variables_defaults.tf b/modules/beta-public-cluster-update-variant/variables_defaults.tf index efa9ecedd7..2627ff7739 100644 --- a/modules/beta-public-cluster-update-variant/variables_defaults.tf +++ b/modules/beta-public-cluster-update-variant/variables_defaults.tf @@ -138,6 +138,26 @@ locals { var.node_pools_cgroup_mode ) + node_pools_transparent_hugepage_enabled = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_enabled + ) + + node_pools_transparent_hugepage_defrag = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_defrag + ) + node_pools_hugepage_size_2m = merge( { all = "" }, { default-node-pool = "" }, diff --git a/modules/beta-public-cluster/README.md b/modules/beta-public-cluster/README.md index 45d5fddb63..6fce21ef05 100644 --- a/modules/beta-public-cluster/README.md +++ b/modules/beta-public-cluster/README.md @@ -261,6 +261,8 @@ Then perform the following commands on the root folder: | node\_pools\_resource\_manager\_tags | Map of maps containing resource manager tags by node-pool name | `map(map(string))` |
"10.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16"
]
{| no | | node\_pools\_tags | Map of lists containing node network tags by node-pool name | `map(list(string))` |
"all": {},
"default-node-pool": {}
}
{| no | | node\_pools\_taints | Map of lists containing node taints by node-pool name | `map(list(object({ key = string, value = string, effect = string })))` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_defrag | Map of strings containing transparent hugepage defrag node config by node-pool name | `map(string)` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_enabled | Map of strings containing transparent hugepage enabled node config by node-pool name | `map(string)` |
"all": "",
"default-node-pool": ""
}
{| no | | non\_masquerade\_cidrs | List of strings in CIDR notation that specify the IP address ranges that do not use IP masquerading. | `list(string)` |
"all": "",
"default-node-pool": ""
}
[| no | | notification\_config\_topic | The desired Pub/Sub topic to which notifications will be sent by GKE. Format is projects/{project}/topics/{topic}. | `string` | `""` | no | | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | diff --git a/modules/beta-public-cluster/cluster.tf b/modules/beta-public-cluster/cluster.tf index b95f83f356..83768022d4 100644 --- a/modules/beta-public-cluster/cluster.tf +++ b/modules/beta-public-cluster/cluster.tf @@ -1055,6 +1055,10 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls[each.value["name"]], local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] }, local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] }, + local.node_pools_transparent_hugepage_enabled["all"] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled["all"] }, + local.node_pools_transparent_hugepage_enabled[each.value["name"]] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled[each.value["name"]] }, + local.node_pools_transparent_hugepage_defrag["all"] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag["all"] }, + local.node_pools_transparent_hugepage_defrag[each.value["name"]] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag[each.value["name"]] }, local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] }, local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] }, @@ -1066,7 +1070,9 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls["all"], local.node_pools_linux_node_configs_sysctls[each.value["name"]] ) - cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + transparent_hugepage_enabled = try(coalesce(local.node_pools_transparent_hugepage_enabled[each.value["name"]], local.node_pools_transparent_hugepage_enabled["all"]), null) + transparent_hugepage_defrag = try(coalesce(local.node_pools_transparent_hugepage_defrag[each.value["name"]], local.node_pools_transparent_hugepage_defrag["all"]), null) dynamic "hugepages_config" { for_each = length(merge( local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, diff --git a/modules/beta-public-cluster/metadata.display.yaml b/modules/beta-public-cluster/metadata.display.yaml index c195e7b846..52d77d1eb8 100644 --- a/modules/beta-public-cluster/metadata.display.yaml +++ b/modules/beta-public-cluster/metadata.display.yaml @@ -385,6 +385,12 @@ spec: node_pools_taints: name: node_pools_taints title: Node Pools Taints + node_pools_transparent_hugepage_defrag: + name: node_pools_transparent_hugepage_defrag + title: Node Pools Transparent Hugepage Defrag + node_pools_transparent_hugepage_enabled: + name: node_pools_transparent_hugepage_enabled + title: Node Pools Transparent Hugepage Enabled non_masquerade_cidrs: name: non_masquerade_cidrs title: Non Masquerade Cidrs diff --git a/modules/beta-public-cluster/metadata.yaml b/modules/beta-public-cluster/metadata.yaml index a5a812470d..97ce10191d 100644 --- a/modules/beta-public-cluster/metadata.yaml +++ b/modules/beta-public-cluster/metadata.yaml @@ -275,6 +275,18 @@ spec: defaultValue: all: "" default-node-pool: "" + - name: node_pools_transparent_hugepage_enabled + description: Map of strings containing transparent hugepage enabled node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" + - name: node_pools_transparent_hugepage_defrag + description: Map of strings containing transparent hugepage defrag node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" - name: node_pools_hugepage_size_2m description: Map of strings containing hugepage size 2m node config by node-pool name varType: map(string) diff --git a/modules/beta-public-cluster/variables.tf b/modules/beta-public-cluster/variables.tf index 690529e16e..1aa228ebc9 100644 --- a/modules/beta-public-cluster/variables.tf +++ b/modules/beta-public-cluster/variables.tf @@ -254,6 +254,28 @@ variable "node_pools_cgroup_mode" { } } +variable "node_pools_transparent_hugepage_enabled" { + type = map(string) + description = "Map of strings containing transparent hugepage enabled node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + +variable "node_pools_transparent_hugepage_defrag" { + type = map(string) + description = "Map of strings containing transparent hugepage defrag node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + variable "node_pools_hugepage_size_2m" { type = map(string) description = "Map of strings containing hugepage size 2m node config by node-pool name" diff --git a/modules/beta-public-cluster/variables_defaults.tf b/modules/beta-public-cluster/variables_defaults.tf index efa9ecedd7..2627ff7739 100644 --- a/modules/beta-public-cluster/variables_defaults.tf +++ b/modules/beta-public-cluster/variables_defaults.tf @@ -138,6 +138,26 @@ locals { var.node_pools_cgroup_mode ) + node_pools_transparent_hugepage_enabled = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_enabled + ) + + node_pools_transparent_hugepage_defrag = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_defrag + ) + node_pools_hugepage_size_2m = merge( { all = "" }, { default-node-pool = "" }, diff --git a/modules/private-cluster-update-variant/README.md b/modules/private-cluster-update-variant/README.md index 2e164137d2..92451ccfb3 100644 --- a/modules/private-cluster-update-variant/README.md +++ b/modules/private-cluster-update-variant/README.md @@ -283,6 +283,8 @@ Then perform the following commands on the root folder: | node\_pools\_resource\_manager\_tags | Map of maps containing resource manager tags by node-pool name | `map(map(string))` |
"10.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16"
]
{| no | | node\_pools\_tags | Map of lists containing node network tags by node-pool name | `map(list(string))` |
"all": {},
"default-node-pool": {}
}
{| no | | node\_pools\_taints | Map of lists containing node taints by node-pool name | `map(list(object({ key = string, value = string, effect = string })))` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_defrag | Map of strings containing transparent hugepage defrag node config by node-pool name | `map(string)` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_enabled | Map of strings containing transparent hugepage enabled node config by node-pool name | `map(string)` |
"all": "",
"default-node-pool": ""
}
{| no | | non\_masquerade\_cidrs | List of strings in CIDR notation that specify the IP address ranges that do not use IP masquerading. | `list(string)` |
"all": "",
"default-node-pool": ""
}
[| no | | notification\_config\_topic | The desired Pub/Sub topic to which notifications will be sent by GKE. Format is projects/{project}/topics/{topic}. | `string` | `""` | no | | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | diff --git a/modules/private-cluster-update-variant/cluster.tf b/modules/private-cluster-update-variant/cluster.tf index 8700f849e0..1c3d5f79af 100644 --- a/modules/private-cluster-update-variant/cluster.tf +++ b/modules/private-cluster-update-variant/cluster.tf @@ -1104,6 +1104,10 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls[each.value["name"]], local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] }, local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] }, + local.node_pools_transparent_hugepage_enabled["all"] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled["all"] }, + local.node_pools_transparent_hugepage_enabled[each.value["name"]] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled[each.value["name"]] }, + local.node_pools_transparent_hugepage_defrag["all"] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag["all"] }, + local.node_pools_transparent_hugepage_defrag[each.value["name"]] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag[each.value["name"]] }, local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] }, local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] }, @@ -1115,7 +1119,9 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls["all"], local.node_pools_linux_node_configs_sysctls[each.value["name"]] ) - cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + transparent_hugepage_enabled = try(coalesce(local.node_pools_transparent_hugepage_enabled[each.value["name"]], local.node_pools_transparent_hugepage_enabled["all"]), null) + transparent_hugepage_defrag = try(coalesce(local.node_pools_transparent_hugepage_defrag[each.value["name"]], local.node_pools_transparent_hugepage_defrag["all"]), null) dynamic "hugepages_config" { for_each = length(merge( local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, diff --git a/modules/private-cluster-update-variant/metadata.display.yaml b/modules/private-cluster-update-variant/metadata.display.yaml index aed100d6e0..91fe12d026 100644 --- a/modules/private-cluster-update-variant/metadata.display.yaml +++ b/modules/private-cluster-update-variant/metadata.display.yaml @@ -376,6 +376,12 @@ spec: node_pools_taints: name: node_pools_taints title: Node Pools Taints + node_pools_transparent_hugepage_defrag: + name: node_pools_transparent_hugepage_defrag + title: Node Pools Transparent Hugepage Defrag + node_pools_transparent_hugepage_enabled: + name: node_pools_transparent_hugepage_enabled + title: Node Pools Transparent Hugepage Enabled non_masquerade_cidrs: name: non_masquerade_cidrs title: Non Masquerade Cidrs diff --git a/modules/private-cluster-update-variant/metadata.yaml b/modules/private-cluster-update-variant/metadata.yaml index 4e8239108f..6d2ad46c99 100644 --- a/modules/private-cluster-update-variant/metadata.yaml +++ b/modules/private-cluster-update-variant/metadata.yaml @@ -275,6 +275,18 @@ spec: defaultValue: all: "" default-node-pool: "" + - name: node_pools_transparent_hugepage_enabled + description: Map of strings containing transparent hugepage enabled node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" + - name: node_pools_transparent_hugepage_defrag + description: Map of strings containing transparent hugepage defrag node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" - name: node_pools_hugepage_size_2m description: Map of strings containing hugepage size 2m node config by node-pool name varType: map(string) diff --git a/modules/private-cluster-update-variant/variables.tf b/modules/private-cluster-update-variant/variables.tf index 3497aed147..d78099e832 100644 --- a/modules/private-cluster-update-variant/variables.tf +++ b/modules/private-cluster-update-variant/variables.tf @@ -254,6 +254,28 @@ variable "node_pools_cgroup_mode" { } } +variable "node_pools_transparent_hugepage_enabled" { + type = map(string) + description = "Map of strings containing transparent hugepage enabled node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + +variable "node_pools_transparent_hugepage_defrag" { + type = map(string) + description = "Map of strings containing transparent hugepage defrag node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + variable "node_pools_hugepage_size_2m" { type = map(string) description = "Map of strings containing hugepage size 2m node config by node-pool name" diff --git a/modules/private-cluster-update-variant/variables_defaults.tf b/modules/private-cluster-update-variant/variables_defaults.tf index efa9ecedd7..2627ff7739 100644 --- a/modules/private-cluster-update-variant/variables_defaults.tf +++ b/modules/private-cluster-update-variant/variables_defaults.tf @@ -138,6 +138,26 @@ locals { var.node_pools_cgroup_mode ) + node_pools_transparent_hugepage_enabled = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_enabled + ) + + node_pools_transparent_hugepage_defrag = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_defrag + ) + node_pools_hugepage_size_2m = merge( { all = "" }, { default-node-pool = "" }, diff --git a/modules/private-cluster/README.md b/modules/private-cluster/README.md index c23ea693e5..0877b0ef8f 100644 --- a/modules/private-cluster/README.md +++ b/modules/private-cluster/README.md @@ -261,6 +261,8 @@ Then perform the following commands on the root folder: | node\_pools\_resource\_manager\_tags | Map of maps containing resource manager tags by node-pool name | `map(map(string))` |
"10.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16"
]
{| no | | node\_pools\_tags | Map of lists containing node network tags by node-pool name | `map(list(string))` |
"all": {},
"default-node-pool": {}
}
{| no | | node\_pools\_taints | Map of lists containing node taints by node-pool name | `map(list(object({ key = string, value = string, effect = string })))` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_defrag | Map of strings containing transparent hugepage defrag node config by node-pool name | `map(string)` |
"all": [],
"default-node-pool": []
}
{| no | +| node\_pools\_transparent\_hugepage\_enabled | Map of strings containing transparent hugepage enabled node config by node-pool name | `map(string)` |
"all": "",
"default-node-pool": ""
}
{| no | | non\_masquerade\_cidrs | List of strings in CIDR notation that specify the IP address ranges that do not use IP masquerading. | `list(string)` |
"all": "",
"default-node-pool": ""
}
[| no | | notification\_config\_topic | The desired Pub/Sub topic to which notifications will be sent by GKE. Format is projects/{project}/topics/{topic}. | `string` | `""` | no | | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | diff --git a/modules/private-cluster/cluster.tf b/modules/private-cluster/cluster.tf index d48a2f9836..d6133da11b 100644 --- a/modules/private-cluster/cluster.tf +++ b/modules/private-cluster/cluster.tf @@ -1019,6 +1019,10 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls[each.value["name"]], local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] }, local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] }, + local.node_pools_transparent_hugepage_enabled["all"] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled["all"] }, + local.node_pools_transparent_hugepage_enabled[each.value["name"]] == "" ? {} : { transparent_hugepage = local.node_pools_transparent_hugepage_enabled[each.value["name"]] }, + local.node_pools_transparent_hugepage_defrag["all"] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag["all"] }, + local.node_pools_transparent_hugepage_defrag[each.value["name"]] == "" ? {} : { transparent_hugepage_defrag = local.node_pools_transparent_hugepage_defrag[each.value["name"]] }, local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] }, local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] }, @@ -1030,7 +1034,9 @@ resource "google_container_node_pool" "pools" { local.node_pools_linux_node_configs_sysctls["all"], local.node_pools_linux_node_configs_sysctls[each.value["name"]] ) - cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + cgroup_mode = try(coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"]), null) + transparent_hugepage_enabled = try(coalesce(local.node_pools_transparent_hugepage_enabled[each.value["name"]], local.node_pools_transparent_hugepage_enabled["all"]), null) + transparent_hugepage_defrag = try(coalesce(local.node_pools_transparent_hugepage_defrag[each.value["name"]], local.node_pools_transparent_hugepage_defrag["all"]), null) dynamic "hugepages_config" { for_each = length(merge( local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] }, diff --git a/modules/private-cluster/metadata.display.yaml b/modules/private-cluster/metadata.display.yaml index cb477ee70a..91aa9c970b 100644 --- a/modules/private-cluster/metadata.display.yaml +++ b/modules/private-cluster/metadata.display.yaml @@ -376,6 +376,12 @@ spec: node_pools_taints: name: node_pools_taints title: Node Pools Taints + node_pools_transparent_hugepage_defrag: + name: node_pools_transparent_hugepage_defrag + title: Node Pools Transparent Hugepage Defrag + node_pools_transparent_hugepage_enabled: + name: node_pools_transparent_hugepage_enabled + title: Node Pools Transparent Hugepage Enabled non_masquerade_cidrs: name: non_masquerade_cidrs title: Non Masquerade Cidrs diff --git a/modules/private-cluster/metadata.yaml b/modules/private-cluster/metadata.yaml index 1a620c3beb..02d4f76372 100644 --- a/modules/private-cluster/metadata.yaml +++ b/modules/private-cluster/metadata.yaml @@ -275,6 +275,18 @@ spec: defaultValue: all: "" default-node-pool: "" + - name: node_pools_transparent_hugepage_enabled + description: Map of strings containing transparent hugepage enabled node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" + - name: node_pools_transparent_hugepage_defrag + description: Map of strings containing transparent hugepage defrag node config by node-pool name + varType: map(string) + defaultValue: + all: "" + default-node-pool: "" - name: node_pools_hugepage_size_2m description: Map of strings containing hugepage size 2m node config by node-pool name varType: map(string) diff --git a/modules/private-cluster/variables.tf b/modules/private-cluster/variables.tf index 3497aed147..d78099e832 100644 --- a/modules/private-cluster/variables.tf +++ b/modules/private-cluster/variables.tf @@ -254,6 +254,28 @@ variable "node_pools_cgroup_mode" { } } +variable "node_pools_transparent_hugepage_enabled" { + type = map(string) + description = "Map of strings containing transparent hugepage enabled node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + +variable "node_pools_transparent_hugepage_defrag" { + type = map(string) + description = "Map of strings containing transparent hugepage defrag node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + variable "node_pools_hugepage_size_2m" { type = map(string) description = "Map of strings containing hugepage size 2m node config by node-pool name" diff --git a/modules/private-cluster/variables_defaults.tf b/modules/private-cluster/variables_defaults.tf index efa9ecedd7..2627ff7739 100644 --- a/modules/private-cluster/variables_defaults.tf +++ b/modules/private-cluster/variables_defaults.tf @@ -138,6 +138,26 @@ locals { var.node_pools_cgroup_mode ) + node_pools_transparent_hugepage_enabled = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_enabled + ) + + node_pools_transparent_hugepage_defrag = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_defrag + ) + node_pools_hugepage_size_2m = merge( { all = "" }, { default-node-pool = "" }, diff --git a/variables.tf b/variables.tf index 101ad7ee59..9ad0cf2704 100644 --- a/variables.tf +++ b/variables.tf @@ -254,6 +254,28 @@ variable "node_pools_cgroup_mode" { } } +variable "node_pools_transparent_hugepage_enabled" { + type = map(string) + description = "Map of strings containing transparent hugepage enabled node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + +variable "node_pools_transparent_hugepage_defrag" { + type = map(string) + description = "Map of strings containing transparent hugepage defrag node config by node-pool name" + + # Default is being set in variables_defaults.tf + default = { + all = "" + default-node-pool = "" + } +} + variable "node_pools_hugepage_size_2m" { type = map(string) description = "Map of strings containing hugepage size 2m node config by node-pool name" diff --git a/variables_defaults.tf b/variables_defaults.tf index efa9ecedd7..2627ff7739 100644 --- a/variables_defaults.tf +++ b/variables_defaults.tf @@ -138,6 +138,26 @@ locals { var.node_pools_cgroup_mode ) + node_pools_transparent_hugepage_enabled = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_enabled + ) + + node_pools_transparent_hugepage_defrag = merge( + { all = "" }, + { default-node-pool = "" }, + zipmap( + [for node_pool in var.node_pools : node_pool["name"]], + [for node_pool in var.node_pools : ""] + ), + var.node_pools_transparent_hugepage_defrag + ) + node_pools_hugepage_size_2m = merge( { all = "" }, { default-node-pool = "" },
"10.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16"
]