Skip to content

Commit 580a3fb

Browse files
committed
support setting hugepages config
Signed-off-by: drfaust92 <ilia.lazebnik@gmail.com>
1 parent 53b1a50 commit 580a3fb

33 files changed

Lines changed: 524 additions & 8 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@ Then perform the following commands on the root folder:
221221
| node\_metadata | Specifies how node metadata is exposed to the workload running on the node | `string` | `"GKE_METADATA"` | no |
222222
| node\_pools | List of maps containing node pools | `list(map(any))` | <pre>[<br> {<br> "name": "default-node-pool"<br> }<br>]</pre> | no |
223223
| node\_pools\_cgroup\_mode | Map of strings containing cgroup node config by node-pool name | `map(string)` | <pre>{<br> "all": "",<br> "default-node-pool": ""<br>}</pre> | no |
224+
| node\_pools\_hugepage\_size\_1g | Map of strings containing hugepage size 1g config by node-pool name | `map(string)` | <pre>{<br> "all": "",<br> "default-node-pool": ""<br>}</pre> | no |
225+
| node\_pools\_hugepage\_size\_2m | Map of strings containing hugepage size 2m node config by node-pool name | `map(string)` | <pre>{<br> "all": "",<br> "default-node-pool": ""<br>}</pre> | no |
224226
| node\_pools\_labels | Map of maps containing node labels by node-pool name | `map(map(string))` | <pre>{<br> "all": {},<br> "default-node-pool": {}<br>}</pre> | no |
225227
| node\_pools\_linux\_node\_configs\_sysctls | Map of maps containing linux node config sysctls by node-pool name | `map(map(string))` | <pre>{<br> "all": {},<br> "default-node-pool": {}<br>}</pre> | no |
226228
| node\_pools\_metadata | Map of maps containing node metadata by node-pool name | `map(map(string))` | <pre>{<br> "all": {},<br> "default-node-pool": {}<br>}</pre> | no |

autogen/main/cluster.tf.tmpl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1112,7 +1112,11 @@ resource "google_container_node_pool" "windows_pools" {
11121112
local.node_pools_linux_node_configs_sysctls["all"],
11131113
local.node_pools_linux_node_configs_sysctls[each.value["name"]],
11141114
local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] },
1115-
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : {cgroup = local.node_pools_cgroup_mode[each.value["name"]]}
1115+
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : {cgroup = local.node_pools_cgroup_mode[each.value["name"]]},
1116+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
1117+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
1118+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
1119+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
11161120
)) != 0 ? [1] : []
11171121

11181122
content {
@@ -1121,6 +1125,19 @@ resource "google_container_node_pool" "windows_pools" {
11211125
local.node_pools_linux_node_configs_sysctls[each.value["name"]]
11221126
)
11231127
cgroup_mode = coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"], null)
1128+
dynamic "hugepages_config" {
1129+
for_each = length(merge(
1130+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
1131+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
1132+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
1133+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
1134+
)) != 0 ? [1] : []
1135+
1136+
content {
1137+
hugepage_size_2m = coalesce(local.node_pools_hugepage_size_2m[each.value["name"]], local.node_pools_hugepage_size_2m["all"], null)
1138+
hugepage_size_1g = coalesce(local.node_pools_hugepage_size_1g[each.value["name"]], local.node_pools_hugepage_size_1g["all"], null)
1139+
}
1140+
}
11241141
}
11251142
}
11261143
{% endif %}

autogen/main/variables.tf.tmpl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,28 @@ variable "node_pools_cgroup_mode" {
248248
default-node-pool = ""
249249
}
250250
}
251+
252+
variable "node_pools_hugepage_size_2m" {
253+
type = map(string)
254+
description = "Map of strings containing hugepage size 2m node config by node-pool name"
255+
256+
# Default is being set in variables_defaults.tf
257+
default = {
258+
all = ""
259+
default-node-pool = ""
260+
}
261+
}
262+
263+
variable "node_pools_hugepage_size_1g" {
264+
type = map(string)
265+
description = "Map of strings containing hugepage size 1g config by node-pool name"
266+
267+
# Default is being set in variables_defaults.tf
268+
default = {
269+
all = ""
270+
default-node-pool = ""
271+
}
272+
}
251273
{% endif %}
252274

253275
variable "enable_cost_allocation" {

autogen/main/variables_defaults.tf.tmpl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,5 +138,25 @@ locals {
138138
),
139139
var.node_pools_cgroup_mode
140140
)
141+
142+
node_pools_hugepage_size_2m = merge(
143+
{ all = "" },
144+
{ default-node-pool = "" },
145+
zipmap(
146+
[for node_pool in var.node_pools : node_pool["name"]],
147+
[for node_pool in var.node_pools : ""]
148+
),
149+
var.node_pools_hugepage_size_2m
150+
)
151+
152+
node_pools_hugepage_size_1g = merge(
153+
{ all = "" },
154+
{ default-node-pool = "" },
155+
zipmap(
156+
[for node_pool in var.node_pools : node_pool["name"]],
157+
[for node_pool in var.node_pools : ""]
158+
),
159+
var.node_pools_hugepage_size_1g
160+
)
141161
}
142162
{% endif %}

cluster.tf

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -805,7 +805,11 @@ resource "google_container_node_pool" "pools" {
805805
local.node_pools_linux_node_configs_sysctls["all"],
806806
local.node_pools_linux_node_configs_sysctls[each.value["name"]],
807807
local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] },
808-
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] }
808+
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] },
809+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
810+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
811+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
812+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
809813
)) != 0 ? [1] : []
810814

811815
content {
@@ -814,6 +818,19 @@ resource "google_container_node_pool" "pools" {
814818
local.node_pools_linux_node_configs_sysctls[each.value["name"]]
815819
)
816820
cgroup_mode = coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"], null)
821+
dynamic "hugepages_config" {
822+
for_each = length(merge(
823+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
824+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
825+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
826+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
827+
)) != 0 ? [1] : []
828+
829+
content {
830+
hugepage_size_2m = coalesce(local.node_pools_hugepage_size_2m[each.value["name"]], local.node_pools_hugepage_size_2m["all"], null)
831+
hugepage_size_1g = coalesce(local.node_pools_hugepage_size_1g[each.value["name"]], local.node_pools_hugepage_size_1g["all"], null)
832+
}
833+
}
817834
}
818835
}
819836

examples/node_pool/main.tf

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,14 @@ module "gke" {
155155
all = "CGROUP_MODE_V1"
156156
pool-01 = "CGROUP_MODE_V2"
157157
}
158+
159+
node_pools_hugepage_size_2m = {
160+
all = "1"
161+
pool-01 = "2"
162+
}
163+
164+
node_pools_hugepage_size_1g = {
165+
all = "1"
166+
pool-03 = "2"
167+
}
158168
}

modules/beta-private-cluster-update-variant/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,8 @@ Then perform the following commands on the root folder:
265265
| node\_metadata | Specifies how node metadata is exposed to the workload running on the node | `string` | `"GKE_METADATA"` | no |
266266
| node\_pools | List of maps containing node pools | `list(map(any))` | <pre>[<br> {<br> "name": "default-node-pool"<br> }<br>]</pre> | no |
267267
| node\_pools\_cgroup\_mode | Map of strings containing cgroup node config by node-pool name | `map(string)` | <pre>{<br> "all": "",<br> "default-node-pool": ""<br>}</pre> | no |
268+
| node\_pools\_hugepage\_size\_1g | Map of strings containing hugepage size 1g config by node-pool name | `map(string)` | <pre>{<br> "all": "",<br> "default-node-pool": ""<br>}</pre> | no |
269+
| node\_pools\_hugepage\_size\_2m | Map of strings containing hugepage size 2m node config by node-pool name | `map(string)` | <pre>{<br> "all": "",<br> "default-node-pool": ""<br>}</pre> | no |
268270
| node\_pools\_labels | Map of maps containing node labels by node-pool name | `map(map(string))` | <pre>{<br> "all": {},<br> "default-node-pool": {}<br>}</pre> | no |
269271
| node\_pools\_linux\_node\_configs\_sysctls | Map of maps containing linux node config sysctls by node-pool name | `map(map(string))` | <pre>{<br> "all": {},<br> "default-node-pool": {}<br>}</pre> | no |
270272
| node\_pools\_metadata | Map of maps containing node metadata by node-pool name | `map(map(string))` | <pre>{<br> "all": {},<br> "default-node-pool": {}<br>}</pre> | no |

modules/beta-private-cluster-update-variant/cluster.tf

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -976,7 +976,11 @@ resource "google_container_node_pool" "pools" {
976976
local.node_pools_linux_node_configs_sysctls["all"],
977977
local.node_pools_linux_node_configs_sysctls[each.value["name"]],
978978
local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] },
979-
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] }
979+
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] },
980+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
981+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
982+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
983+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
980984
)) != 0 ? [1] : []
981985

982986
content {
@@ -985,6 +989,19 @@ resource "google_container_node_pool" "pools" {
985989
local.node_pools_linux_node_configs_sysctls[each.value["name"]]
986990
)
987991
cgroup_mode = coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"], null)
992+
dynamic "hugepages_config" {
993+
for_each = length(merge(
994+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
995+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
996+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
997+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
998+
)) != 0 ? [1] : []
999+
1000+
content {
1001+
hugepage_size_2m = coalesce(local.node_pools_hugepage_size_2m[each.value["name"]], local.node_pools_hugepage_size_2m["all"], null)
1002+
hugepage_size_1g = coalesce(local.node_pools_hugepage_size_1g[each.value["name"]], local.node_pools_hugepage_size_1g["all"], null)
1003+
}
1004+
}
9881005
}
9891006
}
9901007

modules/beta-private-cluster-update-variant/variables.tf

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,28 @@ variable "node_pools_cgroup_mode" {
246246
}
247247
}
248248

249+
variable "node_pools_hugepage_size_2m" {
250+
type = map(string)
251+
description = "Map of strings containing hugepage size 2m node config by node-pool name"
252+
253+
# Default is being set in variables_defaults.tf
254+
default = {
255+
all = ""
256+
default-node-pool = ""
257+
}
258+
}
259+
260+
variable "node_pools_hugepage_size_1g" {
261+
type = map(string)
262+
description = "Map of strings containing hugepage size 1g config by node-pool name"
263+
264+
# Default is being set in variables_defaults.tf
265+
default = {
266+
all = ""
267+
default-node-pool = ""
268+
}
269+
}
270+
249271
variable "enable_cost_allocation" {
250272
type = bool
251273
description = "Enables Cost Allocation Feature and the cluster name and namespace of your GKE workloads appear in the labels field of the billing export to BigQuery"

modules/beta-private-cluster-update-variant/variables_defaults.tf

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,4 +137,24 @@ locals {
137137
),
138138
var.node_pools_cgroup_mode
139139
)
140+
141+
node_pools_hugepage_size_2m = merge(
142+
{ all = "" },
143+
{ default-node-pool = "" },
144+
zipmap(
145+
[for node_pool in var.node_pools : node_pool["name"]],
146+
[for node_pool in var.node_pools : ""]
147+
),
148+
var.node_pools_hugepage_size_2m
149+
)
150+
151+
node_pools_hugepage_size_1g = merge(
152+
{ all = "" },
153+
{ default-node-pool = "" },
154+
zipmap(
155+
[for node_pool in var.node_pools : node_pool["name"]],
156+
[for node_pool in var.node_pools : ""]
157+
),
158+
var.node_pools_hugepage_size_1g
159+
)
140160
}

0 commit comments

Comments
 (0)