feat(gke-nodepool): add missing options in the kubelet_config (#3250)
This commit is contained in:
@@ -194,7 +194,7 @@ module "cluster-1-nodepool-dws" {
|
||||
|---|---|:---:|:---:|:---:|
|
||||
| [cluster_name](variables.tf#L23) | Cluster name. | <code>string</code> | ✓ | |
|
||||
| [location](variables.tf#L48) | Cluster location. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L208) | Cluster project id. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L216) | Cluster project id. | <code>string</code> | ✓ | |
|
||||
| [cluster_id](variables.tf#L17) | Cluster id. Optional, but providing cluster_id is recommended to prevent cluster misconfiguration in some of the edge cases. | <code>string</code> | | <code>null</code> |
|
||||
| [gke_version](variables.tf#L28) | Kubernetes nodes version. Ignored if auto_upgrade is set in management_config. | <code>string</code> | | <code>null</code> |
|
||||
| [k8s_labels](variables.tf#L34) | Kubernetes labels applied to each node. | <code>map(string)</code> | | <code>{}</code> |
|
||||
@@ -202,15 +202,15 @@ module "cluster-1-nodepool-dws" {
|
||||
| [max_pods_per_node](variables.tf#L53) | Maximum number of pods per node. | <code>number</code> | | <code>null</code> |
|
||||
| [name](variables.tf#L59) | Optional nodepool name. | <code>string</code> | | <code>null</code> |
|
||||
| [network_config](variables.tf#L65) | Network configuration. | <code title="object({ enable_private_nodes = optional(bool) pod_range = optional(object({ cidr = optional(string) create = optional(bool, false) name = optional(string) }), {}) additional_node_network_configs = optional(list(object({ network = string subnetwork = string })), []) additional_pod_network_configs = optional(list(object({ subnetwork = string secondary_pod_range = string max_pods_per_node = string })), []) total_egress_bandwidth_tier = optional(string) pod_cidr_overprovisioning_disabled = optional(bool, false) })">object({…})</code> | | <code>null</code> |
|
||||
| [node_config](variables.tf#L89) | Node-level configuration. | <code title="object({ boot_disk_kms_key = optional(string) disk_size_gb = optional(number) disk_type = optional(string, "pd-balanced") ephemeral_ssd_count = optional(number) gcfs = optional(bool, false) guest_accelerator = optional(object({ count = number type = string gpu_driver = optional(object({ version = string partition_size = optional(string) max_shared_clients_per_gpu = optional(number) })) })) local_nvme_ssd_count = optional(number) gvnic = optional(bool, false) image_type = optional(string) kubelet_config = optional(object({ cpu_manager_policy = string cpu_cfs_quota = optional(bool) cpu_cfs_quota_period = optional(string) pod_pids_limit = optional(number) })) linux_node_config = optional(object({ sysctls = optional(map(string)) cgroup_mode = optional(string) })) local_ssd_count = optional(number) machine_type = optional(string) metadata = optional(map(string)) min_cpu_platform = optional(string) preemptible = optional(bool) sandbox_config_gvisor = optional(bool) shielded_instance_config = optional(object({ enable_integrity_monitoring = optional(bool) enable_secure_boot = optional(bool) })) spot = optional(bool) workload_metadata_config_mode = optional(string) })">object({…})</code> | | <code>{}</code> |
|
||||
| [node_count](variables.tf#L154) | Number of nodes per instance group. Initial value can only be changed by recreation, current is ignored when autoscaling is used. | <code title="object({ current = optional(number) initial = number })">object({…})</code> | | <code title="{ initial = 1 }">{…}</code> |
|
||||
| [node_locations](variables.tf#L166) | Node locations. | <code>list(string)</code> | | <code>null</code> |
|
||||
| [nodepool_config](variables.tf#L172) | Nodepool-level configuration. | <code title="object({ autoscaling = optional(object({ location_policy = optional(string) max_node_count = optional(number) min_node_count = optional(number) use_total_nodes = optional(bool, false) })) management = optional(object({ auto_repair = optional(bool) auto_upgrade = optional(bool) })) placement_policy = optional(object({ type = string policy_name = optional(string) tpu_topology = optional(string) })) queued_provisioning = optional(bool, false) upgrade_settings = optional(object({ max_surge = number max_unavailable = number strategy = optional(string) blue_green_settings = optional(object({ node_pool_soak_duration = optional(string) standard_rollout_policy = optional(object({ batch_percentage = optional(number) batch_node_count = optional(number) batch_soak_duration = optional(string) })) })) })) })">object({…})</code> | | <code>null</code> |
|
||||
| [reservation_affinity](variables.tf#L213) | Configuration of the desired reservation which instances could take capacity from. | <code title="object({ consume_reservation_type = string key = optional(string) values = optional(list(string)) })">object({…})</code> | | <code>null</code> |
|
||||
| [service_account](variables.tf#L223) | Nodepool service account. If this variable is set to null, the default GCE service account will be used. If set and email is null, a service account will be created. If scopes are null a default will be used. | <code title="object({ create = optional(bool, false) email = optional(string) oauth_scopes = optional(list(string)) display_name = optional(string) })">object({…})</code> | | <code>{}</code> |
|
||||
| [sole_tenant_nodegroup](variables.tf#L235) | Sole tenant node group. | <code>string</code> | | <code>null</code> |
|
||||
| [tags](variables.tf#L241) | Network tags applied to nodes. | <code>list(string)</code> | | <code>null</code> |
|
||||
| [taints](variables.tf#L247) | Kubernetes taints applied to all nodes. | <code title="map(object({ value = string effect = string }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [node_config](variables.tf#L89) | Node-level configuration. | <code title="object({ boot_disk_kms_key = optional(string) disk_size_gb = optional(number) disk_type = optional(string, "pd-balanced") ephemeral_ssd_count = optional(number) gcfs = optional(bool, false) guest_accelerator = optional(object({ count = number type = string gpu_driver = optional(object({ version = string partition_size = optional(string) max_shared_clients_per_gpu = optional(number) })) })) local_nvme_ssd_count = optional(number) gvnic = optional(bool, false) image_type = optional(string) kubelet_config = optional(object({ cpu_manager_policy = string cpu_cfs_quota = optional(bool) cpu_cfs_quota_period = optional(string) insecure_kubelet_readonly_port_enabled = optional(string) pod_pids_limit = optional(number) container_log_max_size = optional(string) container_log_max_files = optional(number) image_gc_low_threshold_percent = optional(number) image_gc_high_threshold_percent = optional(number) image_minimum_gc_age = optional(string) image_maximum_gc_age = optional(string) allowed_unsafe_sysctls = optional(list(string), []) })) linux_node_config = optional(object({ sysctls = optional(map(string)) cgroup_mode = optional(string) })) local_ssd_count = optional(number) machine_type = optional(string) metadata = optional(map(string)) min_cpu_platform = optional(string) preemptible = optional(bool) sandbox_config_gvisor = optional(bool) shielded_instance_config = optional(object({ enable_integrity_monitoring = optional(bool) enable_secure_boot = optional(bool) })) spot = optional(bool) workload_metadata_config_mode = optional(string) })">object({…})</code> | | <code>{}</code> |
|
||||
| [node_count](variables.tf#L162) | Number of nodes per instance group. Initial value can only be changed by recreation, current is ignored when autoscaling is used. | <code title="object({ current = optional(number) initial = number })">object({…})</code> | | <code title="{ initial = 1 }">{…}</code> |
|
||||
| [node_locations](variables.tf#L174) | Node locations. | <code>list(string)</code> | | <code>null</code> |
|
||||
| [nodepool_config](variables.tf#L180) | Nodepool-level configuration. | <code title="object({ autoscaling = optional(object({ location_policy = optional(string) max_node_count = optional(number) min_node_count = optional(number) use_total_nodes = optional(bool, false) })) management = optional(object({ auto_repair = optional(bool) auto_upgrade = optional(bool) })) placement_policy = optional(object({ type = string policy_name = optional(string) tpu_topology = optional(string) })) queued_provisioning = optional(bool, false) upgrade_settings = optional(object({ max_surge = number max_unavailable = number strategy = optional(string) blue_green_settings = optional(object({ node_pool_soak_duration = optional(string) standard_rollout_policy = optional(object({ batch_percentage = optional(number) batch_node_count = optional(number) batch_soak_duration = optional(string) })) })) })) })">object({…})</code> | | <code>null</code> |
|
||||
| [reservation_affinity](variables.tf#L221) | Configuration of the desired reservation which instances could take capacity from. | <code title="object({ consume_reservation_type = string key = optional(string) values = optional(list(string)) })">object({…})</code> | | <code>null</code> |
|
||||
| [service_account](variables.tf#L231) | Nodepool service account. If this variable is set to null, the default GCE service account will be used. If set and email is null, a service account will be created. If scopes are null a default will be used. | <code title="object({ create = optional(bool, false) email = optional(string) oauth_scopes = optional(list(string)) display_name = optional(string) })">object({…})</code> | | <code>{}</code> |
|
||||
| [sole_tenant_nodegroup](variables.tf#L243) | Sole tenant node group. | <code>string</code> | | <code>null</code> |
|
||||
| [tags](variables.tf#L249) | Network tags applied to nodes. | <code>list(string)</code> | | <code>null</code> |
|
||||
| [taints](variables.tf#L255) | Kubernetes taints applied to all nodes. | <code title="map(object({ value = string effect = string }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
|
||||
@@ -261,10 +261,18 @@ resource "google_container_node_pool" "nodepool" {
|
||||
dynamic "kubelet_config" {
|
||||
for_each = var.node_config.kubelet_config != null ? [""] : []
|
||||
content {
|
||||
cpu_manager_policy = var.node_config.kubelet_config.cpu_manager_policy
|
||||
cpu_cfs_quota = var.node_config.kubelet_config.cpu_cfs_quota
|
||||
cpu_cfs_quota_period = var.node_config.kubelet_config.cpu_cfs_quota_period
|
||||
pod_pids_limit = var.node_config.kubelet_config.pod_pids_limit
|
||||
cpu_manager_policy = var.node_config.kubelet_config.cpu_manager_policy
|
||||
cpu_cfs_quota = var.node_config.kubelet_config.cpu_cfs_quota
|
||||
cpu_cfs_quota_period = var.node_config.kubelet_config.cpu_cfs_quota_period
|
||||
insecure_kubelet_readonly_port_enabled = var.node_config.kubelet_config.insecure_kubelet_readonly_port_enabled
|
||||
pod_pids_limit = var.node_config.kubelet_config.pod_pids_limit
|
||||
container_log_max_size = var.node_config.kubelet_config.container_log_max_size
|
||||
container_log_max_files = var.node_config.kubelet_config.container_log_max_files
|
||||
image_gc_low_threshold_percent = var.node_config.kubelet_config.image_gc_low_threshold_percent
|
||||
image_gc_high_threshold_percent = var.node_config.kubelet_config.image_gc_high_threshold_percent
|
||||
image_minimum_gc_age = var.node_config.kubelet_config.image_minimum_gc_age
|
||||
image_maximum_gc_age = var.node_config.kubelet_config.image_maximum_gc_age
|
||||
allowed_unsafe_sysctls = var.node_config.kubelet_config.allowed_unsafe_sysctls
|
||||
}
|
||||
}
|
||||
dynamic "linux_node_config" {
|
||||
|
||||
@@ -107,10 +107,18 @@ variable "node_config" {
|
||||
gvnic = optional(bool, false)
|
||||
image_type = optional(string)
|
||||
kubelet_config = optional(object({
|
||||
cpu_manager_policy = string
|
||||
cpu_cfs_quota = optional(bool)
|
||||
cpu_cfs_quota_period = optional(string)
|
||||
pod_pids_limit = optional(number)
|
||||
cpu_manager_policy = string
|
||||
cpu_cfs_quota = optional(bool)
|
||||
cpu_cfs_quota_period = optional(string)
|
||||
insecure_kubelet_readonly_port_enabled = optional(string)
|
||||
pod_pids_limit = optional(number)
|
||||
container_log_max_size = optional(string)
|
||||
container_log_max_files = optional(number)
|
||||
image_gc_low_threshold_percent = optional(number)
|
||||
image_gc_high_threshold_percent = optional(number)
|
||||
image_minimum_gc_age = optional(string)
|
||||
image_maximum_gc_age = optional(string)
|
||||
allowed_unsafe_sysctls = optional(list(string), [])
|
||||
}))
|
||||
linux_node_config = optional(object({
|
||||
sysctls = optional(map(string))
|
||||
|
||||
Reference in New Issue
Block a user