diff --git a/README.md b/README.md index 3f941e3d2c..1fd84abc9a 100644 --- a/README.md +++ b/README.md @@ -147,7 +147,7 @@ Then perform the following commands on the root folder: | additive\_vpc\_scope\_dns\_domain | This will enable Cloud DNS additive VPC scope. Must provide a domain name that is unique within the VPC. For this to work cluster\_dns = `CLOUD_DNS` and cluster\_dns\_scope = `CLUSTER_SCOPE` must both be set as well. | `string` | `""` | no | | authenticator\_security\_group | The name of the RBAC security group for use with Google security groups in Kubernetes RBAC. Group name must be in format gke-security-groups@yourdomain.com | `string` | `null` | no | | boot\_disk\_kms\_key | The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool, if not overridden in `node_pools`. This should be of the form projects/[KEY\_PROJECT\_ID]/locations/[LOCATION]/keyRings/[RING\_NAME]/cryptoKeys/[KEY\_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption | `string` | `null` | no | -| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) |
object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
+| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
enable_default_compute_class = optional(bool, false)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_default_compute_class": false,
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
| cluster\_dns\_domain | The suffix used for all cluster service records. | `string` | `""` | no |
| cluster\_dns\_provider | Which in-cluster DNS provider should be used. PROVIDER\_UNSPECIFIED (default) or PLATFORM\_DEFAULT or CLOUD\_DNS. | `string` | `"PROVIDER_UNSPECIFIED"` | no |
| cluster\_dns\_scope | The scope of access to cluster DNS records. DNS\_SCOPE\_UNSPECIFIED (default) or CLUSTER\_SCOPE or VPC\_SCOPE. | `string` | `"DNS_SCOPE_UNSPECIFIED"` | no |
diff --git a/autogen/main/cluster.tf.tmpl b/autogen/main/cluster.tf.tmpl
index 6af31b4760..b1146e914d 100644
--- a/autogen/main/cluster.tf.tmpl
+++ b/autogen/main/cluster.tf.tmpl
@@ -205,6 +205,7 @@ resource "google_container_cluster" "primary" {
}
}
autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ default_compute_class_enabled = lookup(var.cluster_autoscaling, "enable_default_compute_class", false)
dynamic "resource_limits" {
for_each = local.autoscaling_resource_limits
content {
diff --git a/autogen/main/variables.tf.tmpl b/autogen/main/variables.tf.tmpl
index f70041a524..0911bb0561 100644
--- a/autogen/main/variables.tf.tmpl
+++ b/autogen/main/variables.tf.tmpl
@@ -318,43 +318,45 @@ variable "enable_resource_consumption_export" {
{% if autopilot_cluster != true %}
variable "cluster_autoscaling" {
type = object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool,false)
})
default = {
- enabled = false
- autoscaling_profile = "BALANCED"
- max_cpu_cores = 0
- min_cpu_cores = 0
- max_memory_gb = 0
- min_memory_gb = 0
- gpu_resources = []
- auto_repair = true
- auto_upgrade = true
- disk_size = 100
- disk_type = "pd-standard"
- image_type = "COS_CONTAINERD"
- enable_secure_boot = false
- enable_integrity_monitoring = true
+ enabled = false
+ autoscaling_profile = "BALANCED"
+ max_cpu_cores = 0
+ min_cpu_cores = 0
+ max_memory_gb = 0
+ min_memory_gb = 0
+ gpu_resources = []
+ auto_repair = true
+ auto_upgrade = true
+ disk_size = 100
+ disk_type = "pd-standard"
+ image_type = "COS_CONTAINERD"
+ enable_secure_boot = false
+ enable_integrity_monitoring = true
+ enable_default_compute_class = false
}
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
}
diff --git a/cluster.tf b/cluster.tf
index 26b9581268..3a8b48d95b 100644
--- a/cluster.tf
+++ b/cluster.tf
@@ -168,7 +168,8 @@ resource "google_container_cluster" "primary" {
image_type = lookup(var.cluster_autoscaling, "image_type", "COS_CONTAINERD")
}
}
- autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ default_compute_class_enabled = lookup(var.cluster_autoscaling, "enable_default_compute_class", false)
dynamic "resource_limits" {
for_each = local.autoscaling_resource_limits
content {
diff --git a/examples/node_pool/main.tf b/examples/node_pool/main.tf
index 8b66d525b2..0c9dbde134 100644
--- a/examples/node_pool/main.tf
+++ b/examples/node_pool/main.tf
@@ -163,7 +163,7 @@ module "gke" {
}
node_pools_cgroup_mode = {
- all = "CGROUP_MODE_V2"
+ all = "CGROUP_MODE_V2"
pool-01 = "CGROUP_MODE_V1"
}
diff --git a/metadata.yaml b/metadata.yaml
index 91fac188c5..0b57eb7f0f 100644
--- a/metadata.yaml
+++ b/metadata.yaml
@@ -343,27 +343,28 @@ spec:
description: Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)
varType: |-
object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
defaultValue:
auto_repair: true
@@ -371,6 +372,7 @@ spec:
autoscaling_profile: BALANCED
disk_size: 100
disk_type: pd-standard
+ enable_default_compute_class: false
enable_integrity_monitoring: true
enable_secure_boot: false
enabled: false
diff --git a/modules/beta-private-cluster-update-variant/README.md b/modules/beta-private-cluster-update-variant/README.md
index 38c8717704..2b4889e640 100644
--- a/modules/beta-private-cluster-update-variant/README.md
+++ b/modules/beta-private-cluster-update-variant/README.md
@@ -180,7 +180,7 @@ Then perform the following commands on the root folder:
| boot\_disk\_kms\_key | The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool, if not overridden in `node_pools`. This should be of the form projects/[KEY\_PROJECT\_ID]/locations/[LOCATION]/keyRings/[RING\_NAME]/cryptoKeys/[KEY\_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption | `string` | `null` | no |
| cloudrun | (Beta) Enable CloudRun addon | `bool` | `false` | no |
| cloudrun\_load\_balancer\_type | (Beta) Configure the Cloud Run load balancer type. External by default. Set to `LOAD_BALANCER_TYPE_INTERNAL` to configure as an internal load balancer. | `string` | `""` | no |
-| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
+| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
enable_default_compute_class = optional(bool, false)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_default_compute_class": false,
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
| cluster\_dns\_domain | The suffix used for all cluster service records. | `string` | `""` | no |
| cluster\_dns\_provider | Which in-cluster DNS provider should be used. PROVIDER\_UNSPECIFIED (default) or PLATFORM\_DEFAULT or CLOUD\_DNS. | `string` | `"PROVIDER_UNSPECIFIED"` | no |
| cluster\_dns\_scope | The scope of access to cluster DNS records. DNS\_SCOPE\_UNSPECIFIED (default) or CLUSTER\_SCOPE or VPC\_SCOPE. | `string` | `"DNS_SCOPE_UNSPECIFIED"` | no |
diff --git a/modules/beta-private-cluster-update-variant/cluster.tf b/modules/beta-private-cluster-update-variant/cluster.tf
index fa26e7531a..14c45bb59b 100644
--- a/modules/beta-private-cluster-update-variant/cluster.tf
+++ b/modules/beta-private-cluster-update-variant/cluster.tf
@@ -175,7 +175,8 @@ resource "google_container_cluster" "primary" {
image_type = lookup(var.cluster_autoscaling, "image_type", "COS_CONTAINERD")
}
}
- autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ default_compute_class_enabled = lookup(var.cluster_autoscaling, "enable_default_compute_class", false)
dynamic "resource_limits" {
for_each = local.autoscaling_resource_limits
content {
diff --git a/modules/beta-private-cluster-update-variant/metadata.yaml b/modules/beta-private-cluster-update-variant/metadata.yaml
index 0acbe1da9f..5d652d649d 100644
--- a/modules/beta-private-cluster-update-variant/metadata.yaml
+++ b/modules/beta-private-cluster-update-variant/metadata.yaml
@@ -303,27 +303,28 @@ spec:
description: Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)
varType: |-
object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
defaultValue:
auto_repair: true
@@ -331,6 +332,7 @@ spec:
autoscaling_profile: BALANCED
disk_size: 100
disk_type: pd-standard
+ enable_default_compute_class: false
enable_integrity_monitoring: true
enable_secure_boot: false
enabled: false
diff --git a/modules/beta-private-cluster-update-variant/variables.tf b/modules/beta-private-cluster-update-variant/variables.tf
index e7dfcf3c36..a7df77cbde 100644
--- a/modules/beta-private-cluster-update-variant/variables.tf
+++ b/modules/beta-private-cluster-update-variant/variables.tf
@@ -296,43 +296,45 @@ variable "enable_resource_consumption_export" {
variable "cluster_autoscaling" {
type = object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
default = {
- enabled = false
- autoscaling_profile = "BALANCED"
- max_cpu_cores = 0
- min_cpu_cores = 0
- max_memory_gb = 0
- min_memory_gb = 0
- gpu_resources = []
- auto_repair = true
- auto_upgrade = true
- disk_size = 100
- disk_type = "pd-standard"
- image_type = "COS_CONTAINERD"
- enable_secure_boot = false
- enable_integrity_monitoring = true
+ enabled = false
+ autoscaling_profile = "BALANCED"
+ max_cpu_cores = 0
+ min_cpu_cores = 0
+ max_memory_gb = 0
+ min_memory_gb = 0
+ gpu_resources = []
+ auto_repair = true
+ auto_upgrade = true
+ disk_size = 100
+ disk_type = "pd-standard"
+ image_type = "COS_CONTAINERD"
+ enable_secure_boot = false
+ enable_integrity_monitoring = true
+ enable_default_compute_class = false
}
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
}
diff --git a/modules/beta-private-cluster/README.md b/modules/beta-private-cluster/README.md
index 4af2ff92f2..396a327214 100644
--- a/modules/beta-private-cluster/README.md
+++ b/modules/beta-private-cluster/README.md
@@ -158,7 +158,7 @@ Then perform the following commands on the root folder:
| boot\_disk\_kms\_key | The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool, if not overridden in `node_pools`. This should be of the form projects/[KEY\_PROJECT\_ID]/locations/[LOCATION]/keyRings/[RING\_NAME]/cryptoKeys/[KEY\_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption | `string` | `null` | no |
| cloudrun | (Beta) Enable CloudRun addon | `bool` | `false` | no |
| cloudrun\_load\_balancer\_type | (Beta) Configure the Cloud Run load balancer type. External by default. Set to `LOAD_BALANCER_TYPE_INTERNAL` to configure as an internal load balancer. | `string` | `""` | no |
-| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
+| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
enable_default_compute_class = optional(bool, false)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_default_compute_class": false,
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
| cluster\_dns\_domain | The suffix used for all cluster service records. | `string` | `""` | no |
| cluster\_dns\_provider | Which in-cluster DNS provider should be used. PROVIDER\_UNSPECIFIED (default) or PLATFORM\_DEFAULT or CLOUD\_DNS. | `string` | `"PROVIDER_UNSPECIFIED"` | no |
| cluster\_dns\_scope | The scope of access to cluster DNS records. DNS\_SCOPE\_UNSPECIFIED (default) or CLUSTER\_SCOPE or VPC\_SCOPE. | `string` | `"DNS_SCOPE_UNSPECIFIED"` | no |
diff --git a/modules/beta-private-cluster/cluster.tf b/modules/beta-private-cluster/cluster.tf
index d24cdb61e3..bf047b85d2 100644
--- a/modules/beta-private-cluster/cluster.tf
+++ b/modules/beta-private-cluster/cluster.tf
@@ -175,7 +175,8 @@ resource "google_container_cluster" "primary" {
image_type = lookup(var.cluster_autoscaling, "image_type", "COS_CONTAINERD")
}
}
- autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ default_compute_class_enabled = lookup(var.cluster_autoscaling, "enable_default_compute_class", false)
dynamic "resource_limits" {
for_each = local.autoscaling_resource_limits
content {
diff --git a/modules/beta-private-cluster/metadata.yaml b/modules/beta-private-cluster/metadata.yaml
index b9814aa6fd..7187d98be4 100644
--- a/modules/beta-private-cluster/metadata.yaml
+++ b/modules/beta-private-cluster/metadata.yaml
@@ -303,27 +303,28 @@ spec:
description: Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)
varType: |-
object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
defaultValue:
auto_repair: true
@@ -331,6 +332,7 @@ spec:
autoscaling_profile: BALANCED
disk_size: 100
disk_type: pd-standard
+ enable_default_compute_class: false
enable_integrity_monitoring: true
enable_secure_boot: false
enabled: false
diff --git a/modules/beta-private-cluster/variables.tf b/modules/beta-private-cluster/variables.tf
index e7dfcf3c36..a7df77cbde 100644
--- a/modules/beta-private-cluster/variables.tf
+++ b/modules/beta-private-cluster/variables.tf
@@ -296,43 +296,45 @@ variable "enable_resource_consumption_export" {
variable "cluster_autoscaling" {
type = object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
default = {
- enabled = false
- autoscaling_profile = "BALANCED"
- max_cpu_cores = 0
- min_cpu_cores = 0
- max_memory_gb = 0
- min_memory_gb = 0
- gpu_resources = []
- auto_repair = true
- auto_upgrade = true
- disk_size = 100
- disk_type = "pd-standard"
- image_type = "COS_CONTAINERD"
- enable_secure_boot = false
- enable_integrity_monitoring = true
+ enabled = false
+ autoscaling_profile = "BALANCED"
+ max_cpu_cores = 0
+ min_cpu_cores = 0
+ max_memory_gb = 0
+ min_memory_gb = 0
+ gpu_resources = []
+ auto_repair = true
+ auto_upgrade = true
+ disk_size = 100
+ disk_type = "pd-standard"
+ image_type = "COS_CONTAINERD"
+ enable_secure_boot = false
+ enable_integrity_monitoring = true
+ enable_default_compute_class = false
}
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
}
diff --git a/modules/beta-public-cluster-update-variant/README.md b/modules/beta-public-cluster-update-variant/README.md
index e9e9c3c64d..fe835f92d1 100644
--- a/modules/beta-public-cluster-update-variant/README.md
+++ b/modules/beta-public-cluster-update-variant/README.md
@@ -174,7 +174,7 @@ Then perform the following commands on the root folder:
| boot\_disk\_kms\_key | The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool, if not overridden in `node_pools`. This should be of the form projects/[KEY\_PROJECT\_ID]/locations/[LOCATION]/keyRings/[RING\_NAME]/cryptoKeys/[KEY\_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption | `string` | `null` | no |
| cloudrun | (Beta) Enable CloudRun addon | `bool` | `false` | no |
| cloudrun\_load\_balancer\_type | (Beta) Configure the Cloud Run load balancer type. External by default. Set to `LOAD_BALANCER_TYPE_INTERNAL` to configure as an internal load balancer. | `string` | `""` | no |
-| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
+| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
enable_default_compute_class = optional(bool, false)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_default_compute_class": false,
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
| cluster\_dns\_domain | The suffix used for all cluster service records. | `string` | `""` | no |
| cluster\_dns\_provider | Which in-cluster DNS provider should be used. PROVIDER\_UNSPECIFIED (default) or PLATFORM\_DEFAULT or CLOUD\_DNS. | `string` | `"PROVIDER_UNSPECIFIED"` | no |
| cluster\_dns\_scope | The scope of access to cluster DNS records. DNS\_SCOPE\_UNSPECIFIED (default) or CLUSTER\_SCOPE or VPC\_SCOPE. | `string` | `"DNS_SCOPE_UNSPECIFIED"` | no |
diff --git a/modules/beta-public-cluster-update-variant/cluster.tf b/modules/beta-public-cluster-update-variant/cluster.tf
index b968df0e74..d8bfcec3a4 100644
--- a/modules/beta-public-cluster-update-variant/cluster.tf
+++ b/modules/beta-public-cluster-update-variant/cluster.tf
@@ -175,7 +175,8 @@ resource "google_container_cluster" "primary" {
image_type = lookup(var.cluster_autoscaling, "image_type", "COS_CONTAINERD")
}
}
- autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ default_compute_class_enabled = lookup(var.cluster_autoscaling, "enable_default_compute_class", false)
dynamic "resource_limits" {
for_each = local.autoscaling_resource_limits
content {
diff --git a/modules/beta-public-cluster-update-variant/metadata.yaml b/modules/beta-public-cluster-update-variant/metadata.yaml
index 1ce6112253..ba40b62b8a 100644
--- a/modules/beta-public-cluster-update-variant/metadata.yaml
+++ b/modules/beta-public-cluster-update-variant/metadata.yaml
@@ -303,27 +303,28 @@ spec:
description: Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)
varType: |-
object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
defaultValue:
auto_repair: true
@@ -331,6 +332,7 @@ spec:
autoscaling_profile: BALANCED
disk_size: 100
disk_type: pd-standard
+ enable_default_compute_class: false
enable_integrity_monitoring: true
enable_secure_boot: false
enabled: false
diff --git a/modules/beta-public-cluster-update-variant/variables.tf b/modules/beta-public-cluster-update-variant/variables.tf
index a3db7b3def..45fd12e8d1 100644
--- a/modules/beta-public-cluster-update-variant/variables.tf
+++ b/modules/beta-public-cluster-update-variant/variables.tf
@@ -296,43 +296,45 @@ variable "enable_resource_consumption_export" {
variable "cluster_autoscaling" {
type = object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
default = {
- enabled = false
- autoscaling_profile = "BALANCED"
- max_cpu_cores = 0
- min_cpu_cores = 0
- max_memory_gb = 0
- min_memory_gb = 0
- gpu_resources = []
- auto_repair = true
- auto_upgrade = true
- disk_size = 100
- disk_type = "pd-standard"
- image_type = "COS_CONTAINERD"
- enable_secure_boot = false
- enable_integrity_monitoring = true
+ enabled = false
+ autoscaling_profile = "BALANCED"
+ max_cpu_cores = 0
+ min_cpu_cores = 0
+ max_memory_gb = 0
+ min_memory_gb = 0
+ gpu_resources = []
+ auto_repair = true
+ auto_upgrade = true
+ disk_size = 100
+ disk_type = "pd-standard"
+ image_type = "COS_CONTAINERD"
+ enable_secure_boot = false
+ enable_integrity_monitoring = true
+ enable_default_compute_class = false
}
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
}
diff --git a/modules/beta-public-cluster/README.md b/modules/beta-public-cluster/README.md
index 397dfea394..03db6fb808 100644
--- a/modules/beta-public-cluster/README.md
+++ b/modules/beta-public-cluster/README.md
@@ -152,7 +152,7 @@ Then perform the following commands on the root folder:
| boot\_disk\_kms\_key | The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool, if not overridden in `node_pools`. This should be of the form projects/[KEY\_PROJECT\_ID]/locations/[LOCATION]/keyRings/[RING\_NAME]/cryptoKeys/[KEY\_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption | `string` | `null` | no |
| cloudrun | (Beta) Enable CloudRun addon | `bool` | `false` | no |
| cloudrun\_load\_balancer\_type | (Beta) Configure the Cloud Run load balancer type. External by default. Set to `LOAD_BALANCER_TYPE_INTERNAL` to configure as an internal load balancer. | `string` | `""` | no |
-| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
+| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
enable_default_compute_class = optional(bool, false)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_default_compute_class": false,
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
| cluster\_dns\_domain | The suffix used for all cluster service records. | `string` | `""` | no |
| cluster\_dns\_provider | Which in-cluster DNS provider should be used. PROVIDER\_UNSPECIFIED (default) or PLATFORM\_DEFAULT or CLOUD\_DNS. | `string` | `"PROVIDER_UNSPECIFIED"` | no |
| cluster\_dns\_scope | The scope of access to cluster DNS records. DNS\_SCOPE\_UNSPECIFIED (default) or CLUSTER\_SCOPE or VPC\_SCOPE. | `string` | `"DNS_SCOPE_UNSPECIFIED"` | no |
diff --git a/modules/beta-public-cluster/cluster.tf b/modules/beta-public-cluster/cluster.tf
index 5669a60f6e..493d75b198 100644
--- a/modules/beta-public-cluster/cluster.tf
+++ b/modules/beta-public-cluster/cluster.tf
@@ -175,7 +175,8 @@ resource "google_container_cluster" "primary" {
image_type = lookup(var.cluster_autoscaling, "image_type", "COS_CONTAINERD")
}
}
- autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ default_compute_class_enabled = lookup(var.cluster_autoscaling, "enable_default_compute_class", false)
dynamic "resource_limits" {
for_each = local.autoscaling_resource_limits
content {
diff --git a/modules/beta-public-cluster/metadata.yaml b/modules/beta-public-cluster/metadata.yaml
index 4de97d01cc..ce318ab019 100644
--- a/modules/beta-public-cluster/metadata.yaml
+++ b/modules/beta-public-cluster/metadata.yaml
@@ -303,27 +303,28 @@ spec:
description: Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)
varType: |-
object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
defaultValue:
auto_repair: true
@@ -331,6 +332,7 @@ spec:
autoscaling_profile: BALANCED
disk_size: 100
disk_type: pd-standard
+ enable_default_compute_class: false
enable_integrity_monitoring: true
enable_secure_boot: false
enabled: false
diff --git a/modules/beta-public-cluster/variables.tf b/modules/beta-public-cluster/variables.tf
index a3db7b3def..45fd12e8d1 100644
--- a/modules/beta-public-cluster/variables.tf
+++ b/modules/beta-public-cluster/variables.tf
@@ -296,43 +296,45 @@ variable "enable_resource_consumption_export" {
variable "cluster_autoscaling" {
type = object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
default = {
- enabled = false
- autoscaling_profile = "BALANCED"
- max_cpu_cores = 0
- min_cpu_cores = 0
- max_memory_gb = 0
- min_memory_gb = 0
- gpu_resources = []
- auto_repair = true
- auto_upgrade = true
- disk_size = 100
- disk_type = "pd-standard"
- image_type = "COS_CONTAINERD"
- enable_secure_boot = false
- enable_integrity_monitoring = true
+ enabled = false
+ autoscaling_profile = "BALANCED"
+ max_cpu_cores = 0
+ min_cpu_cores = 0
+ max_memory_gb = 0
+ min_memory_gb = 0
+ gpu_resources = []
+ auto_repair = true
+ auto_upgrade = true
+ disk_size = 100
+ disk_type = "pd-standard"
+ image_type = "COS_CONTAINERD"
+ enable_secure_boot = false
+ enable_integrity_monitoring = true
+ enable_default_compute_class = false
}
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
}
diff --git a/modules/gke-autopilot-cluster/metadata.yaml b/modules/gke-autopilot-cluster/metadata.yaml
index 20d1a50662..756a57a226 100644
--- a/modules/gke-autopilot-cluster/metadata.yaml
+++ b/modules/gke-autopilot-cluster/metadata.yaml
@@ -569,9 +569,9 @@ spec:
roles:
- level: Project
roles:
+ - roles/compute.admin
- roles/container.admin
- roles/iam.serviceAccountUser
- - roles/compute.admin
services:
- compute.googleapis.com
- container.googleapis.com
diff --git a/modules/private-cluster-update-variant/README.md b/modules/private-cluster-update-variant/README.md
index ff84169cda..3a40c638e1 100644
--- a/modules/private-cluster-update-variant/README.md
+++ b/modules/private-cluster-update-variant/README.md
@@ -175,7 +175,7 @@ Then perform the following commands on the root folder:
| additive\_vpc\_scope\_dns\_domain | This will enable Cloud DNS additive VPC scope. Must provide a domain name that is unique within the VPC. For this to work cluster\_dns = `CLOUD_DNS` and cluster\_dns\_scope = `CLUSTER_SCOPE` must both be set as well. | `string` | `""` | no |
| authenticator\_security\_group | The name of the RBAC security group for use with Google security groups in Kubernetes RBAC. Group name must be in format gke-security-groups@yourdomain.com | `string` | `null` | no |
| boot\_disk\_kms\_key | The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool, if not overridden in `node_pools`. This should be of the form projects/[KEY\_PROJECT\_ID]/locations/[LOCATION]/keyRings/[RING\_NAME]/cryptoKeys/[KEY\_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption | `string` | `null` | no |
-| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
+| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
enable_default_compute_class = optional(bool, false)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_default_compute_class": false,
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
| cluster\_dns\_domain | The suffix used for all cluster service records. | `string` | `""` | no |
| cluster\_dns\_provider | Which in-cluster DNS provider should be used. PROVIDER\_UNSPECIFIED (default) or PLATFORM\_DEFAULT or CLOUD\_DNS. | `string` | `"PROVIDER_UNSPECIFIED"` | no |
| cluster\_dns\_scope | The scope of access to cluster DNS records. DNS\_SCOPE\_UNSPECIFIED (default) or CLUSTER\_SCOPE or VPC\_SCOPE. | `string` | `"DNS_SCOPE_UNSPECIFIED"` | no |
diff --git a/modules/private-cluster-update-variant/cluster.tf b/modules/private-cluster-update-variant/cluster.tf
index 753413e199..1d5ba20856 100644
--- a/modules/private-cluster-update-variant/cluster.tf
+++ b/modules/private-cluster-update-variant/cluster.tf
@@ -168,7 +168,8 @@ resource "google_container_cluster" "primary" {
image_type = lookup(var.cluster_autoscaling, "image_type", "COS_CONTAINERD")
}
}
- autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ default_compute_class_enabled = lookup(var.cluster_autoscaling, "enable_default_compute_class", false)
dynamic "resource_limits" {
for_each = local.autoscaling_resource_limits
content {
diff --git a/modules/private-cluster-update-variant/metadata.yaml b/modules/private-cluster-update-variant/metadata.yaml
index f0e5a594fd..3e08fae9be 100644
--- a/modules/private-cluster-update-variant/metadata.yaml
+++ b/modules/private-cluster-update-variant/metadata.yaml
@@ -303,27 +303,28 @@ spec:
description: Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)
varType: |-
object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
defaultValue:
auto_repair: true
@@ -331,6 +332,7 @@ spec:
autoscaling_profile: BALANCED
disk_size: 100
disk_type: pd-standard
+ enable_default_compute_class: false
enable_integrity_monitoring: true
enable_secure_boot: false
enabled: false
diff --git a/modules/private-cluster-update-variant/variables.tf b/modules/private-cluster-update-variant/variables.tf
index 39a5443e9e..866e5fccdd 100644
--- a/modules/private-cluster-update-variant/variables.tf
+++ b/modules/private-cluster-update-variant/variables.tf
@@ -296,43 +296,45 @@ variable "enable_resource_consumption_export" {
variable "cluster_autoscaling" {
type = object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
default = {
- enabled = false
- autoscaling_profile = "BALANCED"
- max_cpu_cores = 0
- min_cpu_cores = 0
- max_memory_gb = 0
- min_memory_gb = 0
- gpu_resources = []
- auto_repair = true
- auto_upgrade = true
- disk_size = 100
- disk_type = "pd-standard"
- image_type = "COS_CONTAINERD"
- enable_secure_boot = false
- enable_integrity_monitoring = true
+ enabled = false
+ autoscaling_profile = "BALANCED"
+ max_cpu_cores = 0
+ min_cpu_cores = 0
+ max_memory_gb = 0
+ min_memory_gb = 0
+ gpu_resources = []
+ auto_repair = true
+ auto_upgrade = true
+ disk_size = 100
+ disk_type = "pd-standard"
+ image_type = "COS_CONTAINERD"
+ enable_secure_boot = false
+ enable_integrity_monitoring = true
+ enable_default_compute_class = false
}
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
}
diff --git a/modules/private-cluster/README.md b/modules/private-cluster/README.md
index 0d35d0e58c..5e9b6b31e1 100644
--- a/modules/private-cluster/README.md
+++ b/modules/private-cluster/README.md
@@ -153,7 +153,7 @@ Then perform the following commands on the root folder:
| additive\_vpc\_scope\_dns\_domain | This will enable Cloud DNS additive VPC scope. Must provide a domain name that is unique within the VPC. For this to work cluster\_dns = `CLOUD_DNS` and cluster\_dns\_scope = `CLUSTER_SCOPE` must both be set as well. | `string` | `""` | no |
| authenticator\_security\_group | The name of the RBAC security group for use with Google security groups in Kubernetes RBAC. Group name must be in format gke-security-groups@yourdomain.com | `string` | `null` | no |
| boot\_disk\_kms\_key | The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool, if not overridden in `node_pools`. This should be of the form projects/[KEY\_PROJECT\_ID]/locations/[LOCATION]/keyRings/[RING\_NAME]/cryptoKeys/[KEY\_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption | `string` | `null` | no |
-| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
+| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling) | object({
enabled = bool
autoscaling_profile = string
min_cpu_cores = optional(number)
max_cpu_cores = optional(number)
min_memory_gb = optional(number)
max_memory_gb = optional(number)
gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
auto_repair = bool
auto_upgrade = bool
disk_size = optional(number)
disk_type = optional(string)
image_type = optional(string)
strategy = optional(string)
max_surge = optional(number)
max_unavailable = optional(number)
node_pool_soak_duration = optional(string)
batch_soak_duration = optional(string)
batch_percentage = optional(number)
batch_node_count = optional(number)
enable_secure_boot = optional(bool, false)
enable_integrity_monitoring = optional(bool, true)
enable_default_compute_class = optional(bool, false)
}) | {
"auto_repair": true,
"auto_upgrade": true,
"autoscaling_profile": "BALANCED",
"disk_size": 100,
"disk_type": "pd-standard",
"enable_default_compute_class": false,
"enable_integrity_monitoring": true,
"enable_secure_boot": false,
"enabled": false,
"gpu_resources": [],
"image_type": "COS_CONTAINERD",
"max_cpu_cores": 0,
"max_memory_gb": 0,
"min_cpu_cores": 0,
"min_memory_gb": 0
} | no |
| cluster\_dns\_domain | The suffix used for all cluster service records. | `string` | `""` | no |
| cluster\_dns\_provider | Which in-cluster DNS provider should be used. PROVIDER\_UNSPECIFIED (default) or PLATFORM\_DEFAULT or CLOUD\_DNS. | `string` | `"PROVIDER_UNSPECIFIED"` | no |
| cluster\_dns\_scope | The scope of access to cluster DNS records. DNS\_SCOPE\_UNSPECIFIED (default) or CLUSTER\_SCOPE or VPC\_SCOPE. | `string` | `"DNS_SCOPE_UNSPECIFIED"` | no |
diff --git a/modules/private-cluster/cluster.tf b/modules/private-cluster/cluster.tf
index 10c84ef762..8faf173e9a 100644
--- a/modules/private-cluster/cluster.tf
+++ b/modules/private-cluster/cluster.tf
@@ -168,7 +168,8 @@ resource "google_container_cluster" "primary" {
image_type = lookup(var.cluster_autoscaling, "image_type", "COS_CONTAINERD")
}
}
- autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
+ default_compute_class_enabled = lookup(var.cluster_autoscaling, "enable_default_compute_class", false)
dynamic "resource_limits" {
for_each = local.autoscaling_resource_limits
content {
diff --git a/modules/private-cluster/metadata.yaml b/modules/private-cluster/metadata.yaml
index cce751e9ec..b417f4eac2 100644
--- a/modules/private-cluster/metadata.yaml
+++ b/modules/private-cluster/metadata.yaml
@@ -303,27 +303,28 @@ spec:
description: Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)
varType: |-
object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
defaultValue:
auto_repair: true
@@ -331,6 +332,7 @@ spec:
autoscaling_profile: BALANCED
disk_size: 100
disk_type: pd-standard
+ enable_default_compute_class: false
enable_integrity_monitoring: true
enable_secure_boot: false
enabled: false
diff --git a/modules/private-cluster/variables.tf b/modules/private-cluster/variables.tf
index 39a5443e9e..866e5fccdd 100644
--- a/modules/private-cluster/variables.tf
+++ b/modules/private-cluster/variables.tf
@@ -296,43 +296,45 @@ variable "enable_resource_consumption_export" {
variable "cluster_autoscaling" {
type = object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
default = {
- enabled = false
- autoscaling_profile = "BALANCED"
- max_cpu_cores = 0
- min_cpu_cores = 0
- max_memory_gb = 0
- min_memory_gb = 0
- gpu_resources = []
- auto_repair = true
- auto_upgrade = true
- disk_size = 100
- disk_type = "pd-standard"
- image_type = "COS_CONTAINERD"
- enable_secure_boot = false
- enable_integrity_monitoring = true
+ enabled = false
+ autoscaling_profile = "BALANCED"
+ max_cpu_cores = 0
+ min_cpu_cores = 0
+ max_memory_gb = 0
+ min_memory_gb = 0
+ gpu_resources = []
+ auto_repair = true
+ auto_upgrade = true
+ disk_size = 100
+ disk_type = "pd-standard"
+ image_type = "COS_CONTAINERD"
+ enable_secure_boot = false
+ enable_integrity_monitoring = true
+ enable_default_compute_class = false
}
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
}
diff --git a/variables.tf b/variables.tf
index ac1afd2ec0..b31508a955 100644
--- a/variables.tf
+++ b/variables.tf
@@ -296,43 +296,45 @@ variable "enable_resource_consumption_export" {
variable "cluster_autoscaling" {
type = object({
- enabled = bool
- autoscaling_profile = string
- min_cpu_cores = optional(number)
- max_cpu_cores = optional(number)
- min_memory_gb = optional(number)
- max_memory_gb = optional(number)
- gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
- auto_repair = bool
- auto_upgrade = bool
- disk_size = optional(number)
- disk_type = optional(string)
- image_type = optional(string)
- strategy = optional(string)
- max_surge = optional(number)
- max_unavailable = optional(number)
- node_pool_soak_duration = optional(string)
- batch_soak_duration = optional(string)
- batch_percentage = optional(number)
- batch_node_count = optional(number)
- enable_secure_boot = optional(bool, false)
- enable_integrity_monitoring = optional(bool, true)
+ enabled = bool
+ autoscaling_profile = string
+ min_cpu_cores = optional(number)
+ max_cpu_cores = optional(number)
+ min_memory_gb = optional(number)
+ max_memory_gb = optional(number)
+ gpu_resources = list(object({ resource_type = string, minimum = number, maximum = number }))
+ auto_repair = bool
+ auto_upgrade = bool
+ disk_size = optional(number)
+ disk_type = optional(string)
+ image_type = optional(string)
+ strategy = optional(string)
+ max_surge = optional(number)
+ max_unavailable = optional(number)
+ node_pool_soak_duration = optional(string)
+ batch_soak_duration = optional(string)
+ batch_percentage = optional(number)
+ batch_node_count = optional(number)
+ enable_secure_boot = optional(bool, false)
+ enable_integrity_monitoring = optional(bool, true)
+ enable_default_compute_class = optional(bool, false)
})
default = {
- enabled = false
- autoscaling_profile = "BALANCED"
- max_cpu_cores = 0
- min_cpu_cores = 0
- max_memory_gb = 0
- min_memory_gb = 0
- gpu_resources = []
- auto_repair = true
- auto_upgrade = true
- disk_size = 100
- disk_type = "pd-standard"
- image_type = "COS_CONTAINERD"
- enable_secure_boot = false
- enable_integrity_monitoring = true
+ enabled = false
+ autoscaling_profile = "BALANCED"
+ max_cpu_cores = 0
+ min_cpu_cores = 0
+ max_memory_gb = 0
+ min_memory_gb = 0
+ gpu_resources = []
+ auto_repair = true
+ auto_upgrade = true
+ disk_size = 100
+ disk_type = "pd-standard"
+ image_type = "COS_CONTAINERD"
+ enable_secure_boot = false
+ enable_integrity_monitoring = true
+ enable_default_compute_class = false
}
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
}