Skip to content

Commit 7ffd8b5

Browse files
committed
fixup! Migrate cluster modules from map(map(string)) to map(object)
1 parent 50f4214 commit 7ffd8b5

11 files changed

Lines changed: 116 additions & 173 deletions

File tree

aws/cluster/main.tf

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,7 @@ module "cluster" {
4747
min_size = local.cfg["cluster_min_size"]
4848
cluster_version = local.cfg["cluster_version"]
4949

50-
metadata_options = (
51-
local.cfg["metadata_options_http_endpoint"] != null ||
52-
local.cfg["metadata_options_http_tokens"] != null ||
53-
local.cfg["metadata_options_http_put_response_hop_limit"] != null ||
54-
local.cfg["metadata_options_http_protocol_ipv6"] != null ||
55-
local.cfg["metadata_options_instance_metadata_tags"] != null
56-
? {
57-
http_endpoint = local.cfg["metadata_options_http_endpoint"]
58-
http_tokens = local.cfg["metadata_options_http_tokens"]
59-
http_put_response_hop_limit = local.cfg["metadata_options_http_put_response_hop_limit"]
60-
http_protocol_ipv6 = local.cfg["metadata_options_http_protocol_ipv6"]
61-
instance_metadata_tags = local.cfg["metadata_options_instance_metadata_tags"]
62-
}
63-
: null
64-
)
50+
metadata_options = local.cfg["metadata_options"]
6551

6652
root_device_encrypted = local.cfg["worker_root_device_encrypted"]
6753
root_device_volume_size = local.cfg["worker_root_device_volume_size"]

aws/cluster/variables.tf

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@ variable "configuration" {
2323
cluster_instance_type = optional(string)
2424
cluster_instance_types = optional(list(string))
2525

26-
metadata_options_http_endpoint = optional(string)
27-
metadata_options_http_tokens = optional(string)
28-
metadata_options_http_put_response_hop_limit = optional(number)
29-
metadata_options_http_protocol_ipv6 = optional(string)
30-
metadata_options_instance_metadata_tags = optional(string)
26+
metadata_options = optional(object({
27+
http_endpoint = optional(string)
28+
http_tokens = optional(string)
29+
http_put_response_hop_limit = optional(number)
30+
http_protocol_ipv6 = optional(string)
31+
instance_metadata_tags = optional(string)
32+
}))
3133

3234
cluster_additional_node_tags = optional(map(string))
3335

azurerm/_modules/aks/main.tf

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,32 @@ resource "azurerm_kubernetes_cluster" "current" {
1414
role_based_access_control_enabled = true
1515

1616
default_node_pool {
17-
name = var.default_node_pool_name
18-
type = var.default_node_pool_type
17+
name = var.default_node_pool.name
18+
type = var.default_node_pool.type
1919

20-
auto_scaling_enabled = var.default_node_pool_enable_auto_scaling
20+
auto_scaling_enabled = var.default_node_pool.enable_auto_scaling
2121

2222
# set min and max count only if autoscaling is _enabled_
23-
min_count = var.default_node_pool_enable_auto_scaling ? var.default_node_pool_min_count : null
24-
max_count = var.default_node_pool_enable_auto_scaling ? var.default_node_pool_max_count : null
23+
min_count = var.default_node_pool.enable_auto_scaling ? var.default_node_pool.min_count : null
24+
max_count = var.default_node_pool.enable_auto_scaling ? var.default_node_pool.max_count : null
2525

2626
# set node count only if auto scaling is _disabled_
27-
node_count = var.default_node_pool_enable_auto_scaling ? null : var.default_node_pool_node_count
27+
node_count = var.default_node_pool.enable_auto_scaling ? null : var.default_node_pool.node_count
2828

29-
vm_size = var.default_node_pool_vm_size
30-
os_disk_size_gb = var.default_node_pool_os_disk_size_gb
29+
vm_size = var.default_node_pool.vm_size
30+
os_disk_size_gb = var.default_node_pool.os_disk_size_gb
3131

3232
vnet_subnet_id = var.network_plugin == "azure" ? azurerm_subnet.current[0].id : null
3333
max_pods = var.max_pods
3434

35-
only_critical_addons_enabled = var.default_node_pool_only_critical_addons
35+
only_critical_addons_enabled = var.default_node_pool.only_critical_addons
3636

3737
zones = var.availability_zones
3838

3939
upgrade_settings {
40-
max_surge = var.upgade_settings_max_surge
41-
drain_timeout_in_minutes = var.upgade_settings_drain_timeout_in_minutes
42-
node_soak_duration_in_minutes = var.upgade_settings_node_soak_duration_in_minutes
40+
max_surge = var.upgrade_settings.max_surge
41+
drain_timeout_in_minutes = var.upgrade_settings.drain_timeout_in_minutes
42+
node_soak_duration_in_minutes = var.upgrade_settings.node_soak_duration_in_minutes
4343
}
4444
}
4545

azurerm/_modules/aks/variables.tf

Lines changed: 22 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -80,58 +80,20 @@ variable "max_pods" {
8080
description = "Maximum number of pods to run per node, if using CNI for networking."
8181
}
8282

83-
variable "default_node_pool_name" {
84-
type = string
85-
description = "Name of default node pool."
86-
default = "default"
87-
}
88-
89-
variable "default_node_pool_type" {
90-
type = string
91-
description = "Type of default node pool. Defaults to VirtualMachineScaleSets, use AvailabilitySet for backwards compatibility with older clusters."
92-
default = "VirtualMachineScaleSets"
93-
}
94-
95-
variable "default_node_pool_enable_auto_scaling" {
96-
type = bool
97-
description = "Wether to enable auto scaling for the default node pool. Defaults to true."
98-
default = true
99-
}
100-
101-
variable "default_node_pool_min_count" {
102-
type = number
103-
description = "Min number of worker nodes"
104-
default = 1
105-
}
106-
107-
variable "default_node_pool_max_count" {
108-
type = number
109-
description = "Max number of worker nodes"
110-
default = 1
111-
}
112-
113-
variable "default_node_pool_node_count" {
114-
type = number
115-
description = "Static number of worker nodes"
116-
default = 1
117-
}
118-
119-
variable "default_node_pool_vm_size" {
120-
type = string
121-
description = "VM size of worker nodes"
122-
default = "Standard_D1_v2"
123-
}
124-
125-
variable "default_node_pool_os_disk_size_gb" {
126-
type = number
127-
description = "Disk size of worker nodes (in GB)"
128-
default = 30
129-
}
130-
131-
variable "default_node_pool_only_critical_addons" {
132-
type = bool
133-
description = "Enabling will taint default node pool with CriticalAddonsOnly=true:NoSchedule taint. Changing this forces a new resource to be created."
134-
default = false
83+
variable "default_node_pool" {
84+
type = object({
85+
name = optional(string, "default")
86+
type = optional(string, "VirtualMachineScaleSets")
87+
enable_auto_scaling = optional(bool, true)
88+
min_count = optional(number, 1)
89+
max_count = optional(number, 1)
90+
node_count = optional(number, 1)
91+
vm_size = optional(string, "Standard_D1_v2")
92+
os_disk_size_gb = optional(number, 30)
93+
only_critical_addons = optional(bool, false)
94+
})
95+
description = "Default node pool configuration."
96+
default = {}
13597
}
13698

13799
variable "disable_default_ingress" {
@@ -201,17 +163,12 @@ variable "vertical_pod_autoscaler_enabled" {
201163
description = "Whether Vertical Pod Autoscaler should be enabled for the cluster."
202164
}
203165

204-
variable "upgade_settings_drain_timeout_in_minutes" {
205-
type = number
206-
description = "The amount of time in minutes to wait on eviction of pods and graceful termination per node."
207-
}
208-
209-
variable "upgade_settings_max_surge" {
210-
type = string
211-
description = "The maximum number or percentage of nodes which will be added to the Node Pool size during an upgrade."
212-
}
213-
214-
variable "upgade_settings_node_soak_duration_in_minutes" {
215-
type = number
216-
description = "The amount of time in minutes to wait after draining a node and before reimaging and moving on to next node."
166+
variable "upgrade_settings" {
167+
type = object({
168+
max_surge = optional(string, "10%")
169+
drain_timeout_in_minutes = optional(number, 0)
170+
node_soak_duration_in_minutes = optional(number, 0)
171+
})
172+
description = "Upgrade settings for the default node pool."
173+
default = {}
217174
}

azurerm/_modules/aks/vnet.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ resource "azurerm_virtual_network" "current" {
1111
resource "azurerm_subnet" "current" {
1212
count = var.network_plugin == "azure" ? 1 : 0
1313

14-
name = var.legacy_vnet_name ? "aks-node-subnet" : "${var.metadata_name}-${var.default_node_pool_name}-node-pool"
14+
name = var.legacy_vnet_name ? "aks-node-subnet" : "${var.metadata_name}-${var.default_node_pool.name}-node-pool"
1515
address_prefixes = var.subnet_address_prefixes
1616
resource_group_name = data.azurerm_resource_group.current.name
1717
virtual_network_name = azurerm_virtual_network.current[0].name

azurerm/cluster/main.tf

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,7 @@ module "cluster" {
5353
pod_cidr = local.cfg["pod_cidr"] != null ? local.cfg["pod_cidr"] : "10.244.0.0/16"
5454
max_pods = local.cfg["max_pods"]
5555

56-
default_node_pool_name = local.cfg["default_node_pool_name"] != null ? local.cfg["default_node_pool_name"] : "default"
57-
default_node_pool_type = local.cfg["default_node_pool_type"] != null ? local.cfg["default_node_pool_type"] : "VirtualMachineScaleSets"
58-
59-
default_node_pool_enable_auto_scaling = local.cfg["default_node_pool_enable_auto_scaling"] != null ? local.cfg["default_node_pool_enable_auto_scaling"] : true
60-
default_node_pool_min_count = local.cfg["default_node_pool_min_count"] != null ? local.cfg["default_node_pool_min_count"] : 1
61-
default_node_pool_max_count = local.cfg["default_node_pool_max_count"] != null ? local.cfg["default_node_pool_max_count"] : 1
62-
default_node_pool_node_count = local.cfg["default_node_pool_node_count"] != null ? local.cfg["default_node_pool_node_count"] : 1
63-
64-
default_node_pool_only_critical_addons = local.cfg["default_node_pool_only_critical_addons"] != null ? local.cfg["default_node_pool_only_critical_addons"] : false
65-
default_node_pool_vm_size = local.cfg["default_node_pool_vm_size"] != null ? local.cfg["default_node_pool_vm_size"] : "Standard_B2s"
66-
default_node_pool_os_disk_size_gb = local.cfg["default_node_pool_os_disk_size_gb"] != null ? local.cfg["default_node_pool_os_disk_size_gb"] : 30
56+
default_node_pool = local.cfg["default_node_pool"] != null ? local.cfg["default_node_pool"] : {}
6757

6858
disable_default_ingress = local.cfg["disable_default_ingress"] != null ? local.cfg["disable_default_ingress"] : false
6959
default_ingress_ip_zones = local.cfg["default_ingress_ip_zones"] != null ? local.cfg["default_ingress_ip_zones"] : []
@@ -82,7 +72,5 @@ module "cluster" {
8272
keda_enabled = local.cfg["keda_enabled"] != null ? local.cfg["keda_enabled"] : false
8373
vertical_pod_autoscaler_enabled = local.cfg["vertical_pod_autoscaler_enabled"] != null ? local.cfg["vertical_pod_autoscaler_enabled"] : false
8474

85-
upgade_settings_max_surge = local.cfg["upgade_settings_max_surge"] != null ? local.cfg["upgade_settings_max_surge"] : "10%"
86-
upgade_settings_drain_timeout_in_minutes = local.cfg["upgade_settings_drain_timeout_in_minutes"] != null ? local.cfg["upgade_settings_drain_timeout_in_minutes"] : 0
87-
upgade_settings_node_soak_duration_in_minutes = local.cfg["upgade_settings_node_soak_duration_in_minutes"] != null ? local.cfg["upgade_settings_node_soak_duration_in_minutes"] : 0
75+
upgrade_settings = local.cfg["upgrade_settings"] != null ? local.cfg["upgrade_settings"] : {}
8876
}

azurerm/cluster/variables.tf

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,17 @@ variable "configuration" {
2121
pod_cidr = optional(string)
2222
max_pods = optional(number)
2323

24-
default_node_pool_name = optional(string)
25-
default_node_pool_type = optional(string)
26-
default_node_pool_enable_auto_scaling = optional(bool)
27-
default_node_pool_min_count = optional(number)
28-
default_node_pool_max_count = optional(number)
29-
default_node_pool_node_count = optional(number)
30-
default_node_pool_vm_size = optional(string)
31-
default_node_pool_only_critical_addons = optional(bool)
32-
default_node_pool_os_disk_size_gb = optional(number)
24+
default_node_pool = optional(object({
25+
name = optional(string)
26+
type = optional(string)
27+
enable_auto_scaling = optional(bool)
28+
min_count = optional(number)
29+
max_count = optional(number)
30+
node_count = optional(number)
31+
vm_size = optional(string)
32+
only_critical_addons = optional(bool)
33+
os_disk_size_gb = optional(number)
34+
}))
3335

3436
disable_default_ingress = optional(bool)
3537

@@ -52,9 +54,11 @@ variable "configuration" {
5254
keda_enabled = optional(bool)
5355
vertical_pod_autoscaler_enabled = optional(bool)
5456

55-
upgade_settings_max_surge = optional(string)
56-
upgade_settings_drain_timeout_in_minutes = optional(number)
57-
upgade_settings_node_soak_duration_in_minutes = optional(number)
57+
upgrade_settings = optional(object({
58+
max_surge = optional(string)
59+
drain_timeout_in_minutes = optional(number)
60+
node_soak_duration_in_minutes = optional(number)
61+
}))
5862
}))
5963
description = "Map with per workspace cluster configuration."
6064
}

google/_modules/gke/cluster.tf

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,15 @@ resource "google_container_cluster" "current" {
7474
}
7575

7676
dynamic "maintenance_exclusion" {
77-
for_each = var.maintenance_exclusion_start_time != "" ? [1] : []
77+
for_each = var.maintenance_exclusion.start_time != "" ? [1] : []
7878

7979
content {
80-
start_time = var.maintenance_exclusion_start_time
81-
end_time = var.maintenance_exclusion_end_time
82-
exclusion_name = var.maintenance_exclusion_name
80+
start_time = var.maintenance_exclusion.start_time
81+
end_time = var.maintenance_exclusion.end_time
82+
exclusion_name = var.maintenance_exclusion.name
8383

8484
exclusion_options {
85-
scope = var.maintenance_exclusion_scope
85+
scope = var.maintenance_exclusion.scope
8686
}
8787
}
8888
}
@@ -104,11 +104,11 @@ resource "google_container_cluster" "current" {
104104
}
105105

106106
logging_config {
107-
enable_components = var.logging_config_enable_components
107+
enable_components = var.logging_config.enable_components
108108
}
109109

110110
monitoring_config {
111-
enable_components = var.monitoring_config_enable_components
111+
enable_components = var.monitoring_config.enable_components
112112
}
113113

114114
private_cluster_config {

google/_modules/gke/variables.tf

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -53,24 +53,15 @@ variable "daily_maintenance_window_start_time" {
5353
description = "Start time of the daily maintenance window."
5454
}
5555

56-
variable "maintenance_exclusion_start_time" {
57-
type = string
58-
description = "Maintenance exclusion start time"
59-
}
60-
61-
variable "maintenance_exclusion_end_time" {
62-
type = string
63-
description = "Maintenance exclusion end time"
64-
}
65-
66-
variable "maintenance_exclusion_name" {
67-
type = string
68-
description = "Maintenance exclusion name"
69-
}
70-
71-
variable "maintenance_exclusion_scope" {
72-
type = string
73-
description = "Maintenance exclusion scope"
56+
variable "maintenance_exclusion" {
57+
type = object({
58+
start_time = optional(string, "")
59+
end_time = optional(string, "")
60+
name = optional(string, "")
61+
scope = optional(string, "")
62+
})
63+
description = "Maintenance exclusion configuration"
64+
default = {}
7465
}
7566

7667
variable "remove_default_node_pool" {
@@ -228,14 +219,20 @@ variable "router_asn" {
228219
type = number
229220
}
230221

231-
variable "logging_config_enable_components" {
222+
variable "logging_config" {
223+
type = object({
224+
enable_components = optional(list(string), ["SYSTEM_COMPONENTS", "WORKLOADS"])
225+
})
232226
description = "Logging config components to enable."
233-
type = list(string)
227+
default = {}
234228
}
235229

236-
variable "monitoring_config_enable_components" {
230+
variable "monitoring_config" {
231+
type = object({
232+
enable_components = optional(list(string), ["SYSTEM_COMPONENTS"])
233+
})
237234
description = "Monitoring config components to enable."
238-
type = list(string)
235+
default = {}
239236
}
240237

241238
variable "enable_gcs_fuse_csi_driver" {

google/cluster/main.tf

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ module "cluster" {
4040

4141
daily_maintenance_window_start_time = local.cfg["cluster_daily_maintenance_window_start_time"] != null ? local.cfg["cluster_daily_maintenance_window_start_time"] : "03:00"
4242

43-
maintenance_exclusion_start_time = local.cfg["cluster_maintenance_exclusion_start_time"] != null ? local.cfg["cluster_maintenance_exclusion_start_time"] : ""
44-
maintenance_exclusion_end_time = local.cfg["cluster_maintenance_exclusion_end_time"] != null ? local.cfg["cluster_maintenance_exclusion_end_time"] : ""
45-
maintenance_exclusion_name = local.cfg["cluster_maintenance_exclusion_name"] != null ? local.cfg["cluster_maintenance_exclusion_name"] : ""
46-
maintenance_exclusion_scope = local.cfg["cluster_maintenance_exclusion_scope"] != null ? local.cfg["cluster_maintenance_exclusion_scope"] : ""
43+
maintenance_exclusion = local.cfg["cluster_maintenance_exclusion"] != null ? local.cfg["cluster_maintenance_exclusion"] : {}
4744

4845
remove_default_node_pool = local.cfg["remove_default_node_pool"] != null ? local.cfg["remove_default_node_pool"] : true
4946

@@ -89,15 +86,19 @@ module "cluster" {
8986
enable_intranode_visibility = local.cfg["enable_intranode_visibility"] != null ? local.cfg["enable_intranode_visibility"] : false
9087
enable_tpu = local.cfg["enable_tpu"] != null ? local.cfg["enable_tpu"] : false
9188

92-
router_advertise_config = {
93-
groups = local.cfg["router_advertise_config_groups"] != null ? local.cfg["router_advertise_config_groups"] : []
94-
ip_ranges = local.cfg["router_advertise_config_ip_ranges"] != null ? local.cfg["router_advertise_config_ip_ranges"] : []
95-
mode = local.cfg["router_advertise_config_mode"]
89+
router_advertise_config = local.cfg["router_advertise_config"] != null ? {
90+
groups = local.cfg["router_advertise_config"]["groups"] != null ? local.cfg["router_advertise_config"]["groups"] : []
91+
ip_ranges = local.cfg["router_advertise_config"]["ip_ranges"] != null ? local.cfg["router_advertise_config"]["ip_ranges"] : []
92+
mode = local.cfg["router_advertise_config"]["mode"]
93+
} : {
94+
groups = []
95+
ip_ranges = []
96+
mode = null
9697
}
9798
router_asn = local.cfg["router_asn"]
9899

99-
logging_config_enable_components = local.cfg["logging_config_enable_components"] != null ? local.cfg["logging_config_enable_components"] : ["SYSTEM_COMPONENTS", "WORKLOADS"]
100-
monitoring_config_enable_components = local.cfg["monitoring_config_enable_components"] != null ? local.cfg["monitoring_config_enable_components"] : ["SYSTEM_COMPONENTS"]
100+
logging_config = local.cfg["logging_config"] != null ? local.cfg["logging_config"] : {}
101+
monitoring_config = local.cfg["monitoring_config"] != null ? local.cfg["monitoring_config"] : {}
101102

102103
enable_gcs_fuse_csi_driver = local.cfg["enable_gcs_fuse_csi_driver"]
103104
}

0 commit comments

Comments
 (0)