Skip to content

Commit 4f754ae

Browse files
committed
feat: configure adding default node pool upgrade settings
Using a current azurerm without explicit upgrade settings will remove default upgrade settings: Terraform will perform the following actions: ~ resource "azurerm_kubernetes_cluster" "k8s" { ~ default_node_pool { - upgrade_settings { - drain_timeout_in_minutes = 0 -> null - max_surge = "10%" -> null - node_soak_duration_in_minutes = 0 -> null } } } Plan: 0 to add, 1 to change, 0 to destroy. This feature makes adding upgrade settings configurable
1 parent 165e661 commit 4f754ae

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,22 @@ Type: `string`
190190

191191
Default: `"default"`
192192

193+
### default\_node\_pool\_upgrade\_settings\_enabled
194+
195+
Description: default upgrade settings is added to default node pool
196+
197+
Type: `boolean`
198+
199+
Default: `false`
200+
201+
### default\_node\_pool\_upgrade\_settings\_max\_surge
202+
203+
Description: max surge of upgrade settings for default node pool
204+
205+
Type: `string`
206+
207+
Default: `"10%"`
208+
193209
### dns\_prefix
194210

195211
Description: DNS-Prefix to use. Defaults to cluster name

main.tf

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ locals {
1212
has_automatic_channel_upgrade_maintenance_window = var.automatic_upgrade_channel != "none" ? [
1313
var.automatic_upgrade_channel
1414
] : []
15+
has_default_node_pool_upgrade_settings = var.default_node_pool_upgrade_settings_enabled == true ? [
16+
var.default_node_pool_upgrade_settings_enabled
17+
] : []
1518
}
1619

1720
# Log analytics required for OMS Agent result processing - usually other logging solutions are used. Hence the affected tfsec rule is
@@ -61,6 +64,12 @@ resource "azurerm_kubernetes_cluster" "k8s" {
6164
auto_scaling_enabled = var.auto_scaling_enabled
6265
min_count = var.auto_scaling_min_node_count
6366
max_count = var.auto_scaling_max_node_count
67+
dynamic "upgrade_settings" {
68+
for_each = local.has_default_node_pool_upgrade_settings
69+
content {
70+
max_surge = var.default_node_pool_upgrade_settings_max_surge
71+
}
72+
}
6473
}
6574

6675
dynamic "api_server_access_profile" {

vars.tf

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,3 +270,21 @@ variable "maintenance_window_auto_upgrade_utc_offset" {
270270
see https://learn.microsoft.com/en-us/azure/aks/planned-maintenance#creating-a-maintenance-window
271271
EOF
272272
}
273+
274+
variable "default_node_pool_upgrade_settings_enabled" {
275+
type = bool
276+
default = false
277+
description = <<-EOF
278+
Values:
279+
false, true
280+
EOF
281+
}
282+
283+
variable "default_node_pool_upgrade_settings_max_surge" {
284+
type = string
285+
default = "10%"
286+
description = <<-EOF
287+
Example: "10%"
288+
see https://learn.microsoft.com/en-us/azure/aks/upgrade-aks-cluster?tabs=azure-cli#customize-node-surge-upgrade
289+
EOF
290+
}

0 commit comments

Comments
 (0)