Skip to content

Commit 8f38b8f

Browse files
committed
support setting hugepages config
Signed-off-by: drfaust92 <[email protected]>
1 parent 95171f6 commit 8f38b8f

File tree

33 files changed

+524
-8
lines changed

33 files changed

+524
-8
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,8 @@ Then perform the following commands on the root folder:
228228
| node\_metadata | Specifies how node metadata is exposed to the workload running on the node | `string` | `"GKE_METADATA"` | no |
229229
| node\_pools | List of maps containing node pools | `list(map(any))` | <pre>[<br> {<br> "name": "default-node-pool"<br> }<br>]</pre> | no |
230230
| 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 |
231+
| 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 |
232+
| 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 |
231233
| 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 |
232234
| 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 |
233235
| 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
@@ -1186,7 +1186,11 @@ resource "google_container_node_pool" "windows_pools" {
11861186
local.node_pools_linux_node_configs_sysctls["all"],
11871187
local.node_pools_linux_node_configs_sysctls[each.value["name"]],
11881188
local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] },
1189-
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : {cgroup = local.node_pools_cgroup_mode[each.value["name"]]}
1189+
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : {cgroup = local.node_pools_cgroup_mode[each.value["name"]]},
1190+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
1191+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
1192+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
1193+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
11901194
)) != 0 ? [1] : []
11911195

11921196
content {
@@ -1195,6 +1199,19 @@ resource "google_container_node_pool" "windows_pools" {
11951199
local.node_pools_linux_node_configs_sysctls[each.value["name"]]
11961200
)
11971201
cgroup_mode = coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"], null)
1202+
dynamic "hugepages_config" {
1203+
for_each = length(merge(
1204+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
1205+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
1206+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
1207+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
1208+
)) != 0 ? [1] : []
1209+
1210+
content {
1211+
hugepage_size_2m = coalesce(local.node_pools_hugepage_size_2m[each.value["name"]], local.node_pools_hugepage_size_2m["all"], null)
1212+
hugepage_size_1g = coalesce(local.node_pools_hugepage_size_1g[each.value["name"]], local.node_pools_hugepage_size_1g["all"], null)
1213+
}
1214+
}
11981215
}
11991216
}
12001217
{% endif %}

autogen/main/variables.tf.tmpl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,28 @@ variable "node_pools_cgroup_mode" {
265265
default-node-pool = ""
266266
}
267267
}
268+
269+
variable "node_pools_hugepage_size_2m" {
270+
type = map(string)
271+
description = "Map of strings containing hugepage size 2m node config by node-pool name"
272+
273+
# Default is being set in variables_defaults.tf
274+
default = {
275+
all = ""
276+
default-node-pool = ""
277+
}
278+
}
279+
280+
variable "node_pools_hugepage_size_1g" {
281+
type = map(string)
282+
description = "Map of strings containing hugepage size 1g config by node-pool name"
283+
284+
# Default is being set in variables_defaults.tf
285+
default = {
286+
all = ""
287+
default-node-pool = ""
288+
}
289+
}
268290
{% endif %}
269291

270292
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
@@ -871,7 +871,11 @@ resource "google_container_node_pool" "pools" {
871871
local.node_pools_linux_node_configs_sysctls["all"],
872872
local.node_pools_linux_node_configs_sysctls[each.value["name"]],
873873
local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] },
874-
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] }
874+
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] },
875+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
876+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
877+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
878+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
875879
)) != 0 ? [1] : []
876880

877881
content {
@@ -880,6 +884,19 @@ resource "google_container_node_pool" "pools" {
880884
local.node_pools_linux_node_configs_sysctls[each.value["name"]]
881885
)
882886
cgroup_mode = coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"], null)
887+
dynamic "hugepages_config" {
888+
for_each = length(merge(
889+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
890+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
891+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
892+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
893+
)) != 0 ? [1] : []
894+
895+
content {
896+
hugepage_size_2m = coalesce(local.node_pools_hugepage_size_2m[each.value["name"]], local.node_pools_hugepage_size_2m["all"], null)
897+
hugepage_size_1g = coalesce(local.node_pools_hugepage_size_1g[each.value["name"]], local.node_pools_hugepage_size_1g["all"], null)
898+
}
899+
}
883900
}
884901
}
885902

examples/node_pool/main.tf

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,16 @@ module "gke" {
164164
all = "CGROUP_MODE_V1"
165165
pool-01 = "CGROUP_MODE_V2"
166166
}
167+
168+
node_pools_hugepage_size_2m = {
169+
all = "1"
170+
pool-01 = "2"
171+
}
172+
173+
node_pools_hugepage_size_1g = {
174+
all = "1"
175+
pool-03 = "2"
176+
}
167177
}
168178

169179
resource "google_compute_node_template" "soletenant-tmpl" {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,8 @@ Then perform the following commands on the root folder:
273273
| node\_metadata | Specifies how node metadata is exposed to the workload running on the node | `string` | `"GKE_METADATA"` | no |
274274
| node\_pools | List of maps containing node pools | `list(map(any))` | <pre>[<br> {<br> "name": "default-node-pool"<br> }<br>]</pre> | no |
275275
| 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 |
276+
| 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 |
277+
| 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 |
276278
| 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 |
277279
| 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 |
278280
| 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
@@ -1040,7 +1040,11 @@ resource "google_container_node_pool" "pools" {
10401040
local.node_pools_linux_node_configs_sysctls["all"],
10411041
local.node_pools_linux_node_configs_sysctls[each.value["name"]],
10421042
local.node_pools_cgroup_mode["all"] == "" ? {} : { cgroup = local.node_pools_cgroup_mode["all"] },
1043-
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] }
1043+
local.node_pools_cgroup_mode[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_cgroup_mode[each.value["name"]] },
1044+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
1045+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
1046+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
1047+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
10441048
)) != 0 ? [1] : []
10451049

10461050
content {
@@ -1049,6 +1053,19 @@ resource "google_container_node_pool" "pools" {
10491053
local.node_pools_linux_node_configs_sysctls[each.value["name"]]
10501054
)
10511055
cgroup_mode = coalesce(local.node_pools_cgroup_mode[each.value["name"]], local.node_pools_cgroup_mode["all"], null)
1056+
dynamic "hugepages_config" {
1057+
for_each = length(merge(
1058+
local.node_pools_hugepage_size_2m["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m["all"] },
1059+
local.node_pools_hugepage_size_2m[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_2m[each.value["name"]] },
1060+
local.node_pools_hugepage_size_1g["all"] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g["all"] },
1061+
local.node_pools_hugepage_size_1g[each.value["name"]] == "" ? {} : { cgroup = local.node_pools_hugepage_size_1g[each.value["name"]] },
1062+
)) != 0 ? [1] : []
1063+
1064+
content {
1065+
hugepage_size_2m = coalesce(local.node_pools_hugepage_size_2m[each.value["name"]], local.node_pools_hugepage_size_2m["all"], null)
1066+
hugepage_size_1g = coalesce(local.node_pools_hugepage_size_1g[each.value["name"]], local.node_pools_hugepage_size_1g["all"], null)
1067+
}
1068+
}
10521069
}
10531070
}
10541071

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)