File tree Expand file tree Collapse file tree 9 files changed +112
-17
lines changed Expand file tree Collapse file tree 9 files changed +112
-17
lines changed Original file line number Diff line number Diff line change @@ -74,15 +74,15 @@ resource "google_container_cluster" "current" {
7474 }
7575
7676 dynamic "maintenance_exclusion" {
77- for_each = var. maintenance_exclusions
77+ for_each = var. maintenance_exclusion_start_time != null ? [ 1 ] : []
7878
7979 content {
80- start_time = maintenance_exclusion . value . start_time
81- end_time = maintenance_exclusion . value . end_time
82- exclusion_name = maintenance_exclusion . value . 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 = maintenance_exclusion . value . scope
85+ scope = var . maintenance_exclusion_scope
8686 }
8787 }
8888 }
Original file line number Diff line number Diff line change @@ -14,6 +14,16 @@ resource "google_container_node_pool" "current" {
1414
1515 node_locations = var. node_locations
1616
17+ dynamic "network_config" {
18+ for_each = var. network_config == null ? [] : [1 ]
19+
20+ content {
21+ enable_private_nodes = var. network_config [" enable_private_nodes" ]
22+ create_pod_range = var. network_config [" create_pod_range" ]
23+ pod_ipv4_cidr_block = var. network_config [" pod_ipv4_cidr_block" ]
24+ }
25+ }
26+
1727 #
1828 #
1929 # Node config
@@ -31,7 +41,7 @@ resource "google_container_node_pool" "current" {
3141
3242 labels = merge (var. labels , var. metadata_labels )
3343
34- tags = var. metadata_tags
44+ tags = concat ( var. metadata_tags , var . instance_tags )
3545
3646 workload_metadata_config {
3747 mode = var. node_workload_metadata_config
Original file line number Diff line number Diff line change @@ -119,6 +119,12 @@ variable "taints" {
119119 default = null
120120}
121121
122+ variable "instance_tags" {
123+ type = list (string )
124+ description = " List of instance tags to apply to nodes."
125+ default = []
126+ }
127+
122128variable "node_locations" {
123129 type = list (string )
124130 description = " List of zones in the cluster's region to start worker nodes in. Defaults to cluster's node locations."
@@ -152,3 +158,26 @@ variable "labels" {
152158 description = " Kubernetes labels to set on the nodes created by the node pool. Merged with Kubestack default labels."
153159 default = {}
154160}
161+
162+ variable "network_config" {
163+ type = object ({
164+ enable_private_nodes = bool
165+ create_pod_range = bool
166+ pod_ipv4_cidr_block = string
167+ })
168+ description = " Additional network configuration for the node pool."
169+ }
170+
171+ variable "ephemeral_storage_local_ssd_config" {
172+ type = object ({
173+ local_ssd_count = number
174+ })
175+ description = " `ephemeral_storage_local_ssd_config` block, useful for node groups with local SSD. Defaults to `null`"
176+ default = null
177+ }
178+
179+ variable "labels" {
180+ type = map (string )
181+ description = " Kubernetes labels to set on the nodes created by the node pool. Merged with Kubestack default labels."
182+ default = {}
183+ }
Original file line number Diff line number Diff line change @@ -53,14 +53,24 @@ variable "daily_maintenance_window_start_time" {
5353 description = " Start time of the daily maintenance window."
5454}
5555
56- variable "maintenance_exclusions" {
57- type = list (object ({
58- start_time = string
59- end_time = string
60- exclusion_name = string
61- scope = string
62- }))
63- description = " List of maintenance exclusion configuration to be set on the cluster."
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"
6474}
6575
6676variable "remove_default_node_pool" {
Original file line number Diff line number Diff line change @@ -30,7 +30,11 @@ locals {
3030 " cluster_daily_maintenance_window_start_time" ,
3131 " 03:00" ,
3232 )
33- cluster_maintenance_exclusions = lookup (local. cfg , " cluster_maintenance_exclusions" , [])
33+
34+ cluster_maintenance_exclusion_start_time = lookup (local. cfg , " cluster_maintenance_exclusion_start_time" , " " )
35+ cluster_maintenance_exclusion_end_time = lookup (local. cfg , " cluster_maintenance_exclusion_end_time" , " " )
36+ cluster_maintenance_exclusion_name = lookup (local. cfg , " cluster_maintenance_exclusion_name" , " " )
37+ cluster_maintenance_exclusion_scope = lookup (local. cfg , " cluster_maintenance_exclusion_scope" , " " )
3438
3539 remove_default_node_pool = lookup (local. cfg , " remove_default_node_pool" , true )
3640
Original file line number Diff line number Diff line change @@ -27,7 +27,11 @@ module "cluster" {
2727 release_channel = local. cluster_release_channel
2828
2929 daily_maintenance_window_start_time = local. cluster_daily_maintenance_window_start_time
30- maintenance_exclusions = local. cluster_maintenance_exclusions
30+
31+ maintenance_exclusion_start_time = local. cluster_maintenance_exclusion_start_time
32+ maintenance_exclusion_end_time = local. cluster_maintenance_exclusion_end_time
33+ maintenance_exclusion_name = local. cluster_maintenance_exclusion_name
34+ maintenance_exclusion_scope = local. cluster_maintenance_exclusion_scope
3135
3236 remove_default_node_pool = local. remove_default_node_pool
3337
Original file line number Diff line number Diff line change @@ -42,5 +42,12 @@ locals {
4242
4343 ephemeral_storage_local_ssd_config = local. cfg [" ephemeral_storage_local_ssd_config" ]
4444
45+ guest_accelerator = local. cfg [" guest_accelerator" ]
46+ network_config = local. cfg [" network_config" ]
47+
48+ instance_tags = local. cfg [" instance_tags" ]
49+
50+ ephemeral_storage_local_ssd_config = local. cfg [" ephemeral_storage_local_ssd_config" ]
51+
4552 guest_accelerator = local. cfg [" guest_accelerator" ]
4653}
Original file line number Diff line number Diff line change @@ -30,7 +30,8 @@ module "node_pool" {
3030
3131 node_workload_metadata_config = local. node_workload_metadata_config
3232
33- taints = local. taints
33+ taints = local. taints
34+ instance_tags = local. instance_tags
3435
3536 labels = local. labels
3637
@@ -40,4 +41,10 @@ module "node_pool" {
4041 ephemeral_storage_local_ssd_config = local. ephemeral_storage_local_ssd_config
4142
4243 guest_accelerator = local. guest_accelerator
44+
45+ network_config = local. network_config
46+
47+ ephemeral_storage_local_ssd_config = local. ephemeral_storage_local_ssd_config
48+
49+ guest_accelerator = local. guest_accelerator
4350}
Original file line number Diff line number Diff line change @@ -29,6 +29,8 @@ variable "configuration" {
2929
3030 labels = optional (map (string ))
3131
32+ labels = optional (map (string ))
33+
3234 extra_oauth_scopes = optional (list (string ))
3335
3436 node_workload_metadata_config = optional (string )
@@ -48,6 +50,28 @@ variable "configuration" {
4850 max_shared_clients_per_gpu = optional (number )
4951 }))
5052 }))
53+
54+ network_config = optional (object ({
55+ enable_private_nodes = bool
56+ create_pod_range = bool
57+ pod_ipv4_cidr_block = string
58+ }))
59+
60+ instance_tags = optional (list (string ))
61+
62+ ephemeral_storage_local_ssd_config = optional (object ({
63+ local_ssd_count = number
64+ }))
65+
66+ guest_accelerator = optional (object ({
67+ type = string
68+ count = number
69+ gpu_partition_size = optional (string )
70+ gpu_sharing_config = optional (object ({
71+ gpu_sharing_strategy = optional (string )
72+ max_shared_clients_per_gpu = optional (number )
73+ }))
74+ }))
5175 }))
5276
5377 description = " Map with per workspace cluster configuration."
You can’t perform that action at this time.
0 commit comments