Skip to content

Commit 7e1b75a

Browse files
authored
Merge branch 'main' into apeabody-patch-4
2 parents 4808f6d + 98ffedd commit 7e1b75a

File tree

85 files changed

+351
-92
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+351
-92
lines changed

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
Extending the adopted spec, each change should have a link to its corresponding pull request appended.
88

9+
## [38.0.0](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v37.1.0...v38.0.0) (2025-08-13)
10+
11+
12+
### ⚠ BREAKING CHANGES
13+
14+
* add data cache count ([#2404](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2404))
15+
* **TPG>=6.42:** add support for gke_auto_upgrade_config ([#2395](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2395))
16+
* add support for flex start ([#2386](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2386))
17+
* **TPG>=6.41:** add support performance_monitoring_unit ([#2391](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2391))
18+
* **TPG>=6.39:** Fleet app operator permissions custom roles ([#2377](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2377))
19+
20+
### Features
21+
22+
* add data cache count ([#2404](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2404)) ([85c0487](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/commit/85c0487a8e96d9f77bab5108329c6d7582b392d3))
23+
* add support for cluster level total_egress_bandwidth_tier ([#2394](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2394)) ([1b69e34](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/commit/1b69e34f83511f4e63d342439102acda59128c8f))
24+
* add support for flex start ([#2386](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2386)) ([c0c80e6](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/commit/c0c80e6c5b97e235d76285ab49d2c5808f2d42af))
25+
* Simple GKE modules for ADC ([#2397](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2397)) ([1859b17](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/commit/1859b172249ec604b0e6edc8bce3cb003f9f6603))
26+
* **TPG>=6.39:** Fleet app operator permissions custom roles ([#2377](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2377)) ([c008237](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/commit/c008237839c4a29779f893f51baabdc92846b07a))
27+
* **TPG>=6.41:** add support performance_monitoring_unit ([#2391](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2391)) ([e5ade9c](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/commit/e5ade9c674e5cc32022f51062ec5952eb3c2f5cb))
28+
* **TPG>=6.42:** add support for gke_auto_upgrade_config ([#2395](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2395)) ([19a0929](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/commit/19a09296015c512794f13f4f6b821a4e67459870))
29+
30+
31+
### Bug Fixes
32+
33+
* wrap cgroup_mode coalesce with try() to handle empty values ([#2396](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/2396)) ([6148cb7](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/commit/6148cb7c9f15dbcffbb895bae44a9c0cad6ad660))
34+
935
## [37.1.0](https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v37.0.0...v37.1.0) (2025-07-17)
1036

1137

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ Then perform the following commands on the root folder:
268268
| stub\_domains | Map of stub domains and their resolvers to forward DNS queries for a certain domain to an external DNS server | `map(list(string))` | `{}` | no |
269269
| subnetwork | The subnetwork to host the cluster in (required) | `string` | n/a | yes |
270270
| timeouts | Timeout for cluster operations. | `map(string)` | `{}` | no |
271+
| total\_egress\_bandwidth\_tier | Specifies the total network bandwidth tier for NodePools in the cluster. Valid values are `TIER_UNSPECIFIED` and `TIER_1`. Defaults to `TIER_UNSPECIFIED`. | `string` | `null` | no |
271272
| upstream\_nameservers | If specified, the values replace the nameservers taken by default from the node’s /etc/resolv.conf | `list(string)` | `[]` | no |
272273
| windows\_node\_pools | List of maps containing Windows node pools | `list(map(string))` | `[]` | no |
273274
| zones | The zones to host the cluster in (optional if regional cluster / required if zonal) | `list(string)` | `[]` | no |
@@ -352,9 +353,10 @@ The node_pools variable takes the following parameters:
352353
| initial_node_count | The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. Defaults to the value of min_count | " " | Optional |
353354
| insecure_kubelet_readonly_port_enabled | (boolean) Whether or not to enable the insecure Kubelet readonly port. | null | Optional |
354355
| key | The key required for the taint | | Required |
355-
| logging_variant | The type of logging agent that is deployed by default for newly created node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT. | DEFAULT | Optional |
356-
| local_ssd_count | The amount of local SSD disks that will be attached to each cluster node and may be used as a `hostpath` volume or a `local` PersistentVolume. | 0 | Optional |
356+
| logging_variant | The type of logging agent that is deployed by default for newly created node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT. | DEFAULT | Optional |
357+
| local_ssd_count | The amount of local SSD disks that will be attached to each cluster node and may be used as a `hostpath` volume or a `local` PersistentVolume. | 0 | Optional |
357358
| local_ssd_ephemeral_storage_count | The amount of local SSD disks that will be attached to each cluster node and assigned as scratch space as an `emptyDir` volume. If unspecified, ephemeral storage is backed by the cluster node boot disk. | 0 | Optional |
359+
| ephemeral_storage_local_ssd_data_cache_count | Number of raw-block local NVMe SSD disks to be attached to the node utilized for GKE Data Cache. | 0 | Optional |
358360
| local_nvme_ssd_count | Number of raw-block local NVMe SSD disks to be attached to the node.Each local SSD is 375 GB in size. If zero, it means no raw-block local NVMe SSD disks to be attached to the node. | 0 | Optional |
359361
| machine_type | The name of a Google Compute Engine machine type | e2-medium | Optional |
360362
| min_cpu_platform | Minimum CPU platform to be used by the nodes in the pool. The nodes may be scheduled on the specified or newer CPU platform. | " " | Optional |

autogen/main/README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,9 +228,10 @@ The node_pools variable takes the following parameters:
228228
| initial_node_count | The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. Defaults to the value of min_count | " " | Optional |
229229
| insecure_kubelet_readonly_port_enabled | (boolean) Whether or not to enable the insecure Kubelet readonly port. | null | Optional |
230230
| key | The key required for the taint | | Required |
231-
| logging_variant | The type of logging agent that is deployed by default for newly created node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT. | DEFAULT | Optional |
232-
| local_ssd_count | The amount of local SSD disks that will be attached to each cluster node and may be used as a `hostpath` volume or a `local` PersistentVolume. | 0 | Optional |
231+
| logging_variant | The type of logging agent that is deployed by default for newly created node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT. | DEFAULT | Optional |
232+
| local_ssd_count | The amount of local SSD disks that will be attached to each cluster node and may be used as a `hostpath` volume or a `local` PersistentVolume. | 0 | Optional |
233233
| local_ssd_ephemeral_storage_count | The amount of local SSD disks that will be attached to each cluster node and assigned as scratch space as an `emptyDir` volume. If unspecified, ephemeral storage is backed by the cluster node boot disk. | 0 | Optional |
234+
| ephemeral_storage_local_ssd_data_cache_count | Number of raw-block local NVMe SSD disks to be attached to the node utilized for GKE Data Cache. | 0 | Optional |
234235
{% if beta_cluster %}
235236
| local_ssd_ephemeral_count | The amount of local SSD disks that will be attached to each cluster node and assigned as scratch space as an `emptyDir` volume. If unspecified, ephemeral storage is backed by the cluster node boot disk. | 0 | Optional |
236237
{% endif %}

autogen/main/cluster.tf.tmpl

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ resource "google_container_cluster" "primary" {
237237
{% if autopilot_cluster != true %}
238238

239239
dynamic "identity_service_config" {
240-
for_each = var.enable_identity_service !=null ? [var.enable_identity_service] : []
240+
for_each = var.enable_identity_service != null ? [var.enable_identity_service] : []
241241
content {
242242
enabled = identity_service_config.value
243243
}
@@ -267,6 +267,13 @@ resource "google_container_cluster" "primary" {
267267

268268
in_transit_encryption_config = var.in_transit_encryption_config
269269

270+
dynamic "network_performance_config" {
271+
for_each = var.total_egress_bandwidth_tier != null ? [1] : []
272+
content {
273+
total_egress_bandwidth_tier = var.total_egress_bandwidth_tier
274+
}
275+
}
276+
270277
dynamic "secret_manager_config" {
271278
for_each = var.enable_secret_manager_addon ? [var.enable_secret_manager_addon] : []
272279
content {
@@ -856,6 +863,8 @@ locals {
856863
"local_ssd_encryption_mode",
857864
"max_run_duration",
858865
"flex_start",
866+
"local_ssd_ephemeral_storage_count",
867+
"ephemeral_storage_local_ssd_data_cache_count",
859868
]
860869
}
861870

@@ -1107,14 +1116,15 @@ resource "google_container_node_pool" "windows_pools" {
11071116
disk_type = lookup(each.value, "disk_type", "pd-standard")
11081117

11091118
dynamic "ephemeral_storage_local_ssd_config" {
1110-
for_each = lookup(each.value, "local_ssd_ephemeral_storage_count", 0) > 0 ? [each.value.local_ssd_ephemeral_storage_count] : []
1119+
for_each = lookup(each.value, "local_ssd_ephemeral_storage_count", 0) > 0 || lookup(each.value, "ephemeral_storage_local_ssd_data_cache_count", 0) > 0 ? [1] : []
11111120
content {
1112-
local_ssd_count = ephemeral_storage_local_ssd_config.value
1121+
local_ssd_count = lookup(each.value, "local_ssd_ephemeral_storage_count", 0)
1122+
data_cache_count = lookup(each.value, "ephemeral_storage_local_ssd_data_cache_count", 0)
11131123
}
11141124
}
11151125
{% if beta_cluster %}
11161126
dynamic "ephemeral_storage_config" {
1117-
for_each = lookup(each.value, "local_ssd_ephemeral_count",0) > 0 ? [each.value.local_ssd_ephemeral_count] : []
1127+
for_each = lookup(each.value, "local_ssd_ephemeral_count", 0) > 0 ? [each.value.local_ssd_ephemeral_count] : []
11181128
content {
11191129
local_ssd_count = ephemeral_storage_config.value
11201130
}

autogen/main/variables.tf.tmpl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,12 @@ variable "in_transit_encryption_config" {
710710
default = null
711711
}
712712

713+
variable "total_egress_bandwidth_tier" {
714+
type = string
715+
description = "Specifies the total network bandwidth tier for NodePools in the cluster. Valid values are `TIER_UNSPECIFIED` and `TIER_1`. Defaults to `TIER_UNSPECIFIED`."
716+
default = null
717+
}
718+
713719
variable "security_posture_mode" {
714720
description = "Security posture mode. Accepted values are `DISABLED` and `BASIC`. Defaults to `DISABLED`."
715721
type = string

autogen/main/versions.tf.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,6 @@ terraform {
6363
}
6464
}
6565
provider_meta "{% if beta_cluster %}google-beta{% else %}google{% endif %}" {
66-
module_name = "blueprints/terraform/terraform-google-kubernetes-engine{% if module_registry_name %}:{{ module_registry_name }}{% endif %}/v37.1.0"
66+
module_name = "blueprints/terraform/terraform-google-kubernetes-engine{% if module_registry_name %}:{{ module_registry_name }}{% endif %}/v38.0.0"
6767
}
6868
}

autogen/safer-cluster/versions.tf.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ terraform {
2323
required_version = ">=1.3"
2424

2525
provider_meta "google-beta" {
26-
module_name = "blueprints/terraform/terraform-google-kubernetes-engine{% if module_registry_name %}:{{ module_registry_name }}{% endif %}/v37.1.0"
26+
module_name = "blueprints/terraform/terraform-google-kubernetes-engine{% if module_registry_name %}:{{ module_registry_name }}{% endif %}/v38.0.0"
2727
}
2828
}

cluster.tf

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,13 @@ resource "google_container_cluster" "primary" {
206206

207207
in_transit_encryption_config = var.in_transit_encryption_config
208208

209+
dynamic "network_performance_config" {
210+
for_each = var.total_egress_bandwidth_tier != null ? [1] : []
211+
content {
212+
total_egress_bandwidth_tier = var.total_egress_bandwidth_tier
213+
}
214+
}
215+
209216
dynamic "secret_manager_config" {
210217
for_each = var.enable_secret_manager_addon ? [var.enable_secret_manager_addon] : []
211218
content {
@@ -812,9 +819,10 @@ resource "google_container_node_pool" "pools" {
812819
disk_type = lookup(each.value, "disk_type", "pd-standard")
813820

814821
dynamic "ephemeral_storage_local_ssd_config" {
815-
for_each = lookup(each.value, "local_ssd_ephemeral_storage_count", 0) > 0 ? [each.value.local_ssd_ephemeral_storage_count] : []
822+
for_each = lookup(each.value, "local_ssd_ephemeral_storage_count", 0) > 0 || lookup(each.value, "ephemeral_storage_local_ssd_data_cache_count", 0) > 0 ? [1] : []
816823
content {
817-
local_ssd_count = ephemeral_storage_local_ssd_config.value
824+
local_ssd_count = lookup(each.value, "local_ssd_ephemeral_storage_count", 0)
825+
data_cache_count = lookup(each.value, "ephemeral_storage_local_ssd_data_cache_count", 0)
818826
}
819827
}
820828

@@ -1177,9 +1185,10 @@ resource "google_container_node_pool" "windows_pools" {
11771185
disk_type = lookup(each.value, "disk_type", "pd-standard")
11781186

11791187
dynamic "ephemeral_storage_local_ssd_config" {
1180-
for_each = lookup(each.value, "local_ssd_ephemeral_storage_count", 0) > 0 ? [each.value.local_ssd_ephemeral_storage_count] : []
1188+
for_each = lookup(each.value, "local_ssd_ephemeral_storage_count", 0) > 0 || lookup(each.value, "ephemeral_storage_local_ssd_data_cache_count", 0) > 0 ? [1] : []
11811189
content {
1182-
local_ssd_count = ephemeral_storage_local_ssd_config.value
1190+
local_ssd_count = lookup(each.value, "local_ssd_ephemeral_storage_count", 0)
1191+
data_cache_count = lookup(each.value, "ephemeral_storage_local_ssd_data_cache_count", 0)
11831192
}
11841193
}
11851194

docs/upgrading_to_v38.0.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Upgrading to v38.0
2+
The v38.0 release of *kubernetes-engine* is a backwards incompatible release.
3+
4+
### Google Cloud Platform Provider upgrade
5+
The Terraform Kubernetes Engine Module now requires version 6.42 or higher of the Google Cloud Platform Providers.
6+
7+
### Update variant random ID keepers updated
8+
9+
The v38.0 release updates the keepers for the update variant modules. This will force a recreation of the nodepools. To avoid this, it is possible to edit the remote state of the `random_id` resource to add the new attributes.

metadata.display.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,9 @@ spec:
411411
timeouts:
412412
name: timeouts
413413
title: Timeouts
414+
total_egress_bandwidth_tier:
415+
name: total_egress_bandwidth_tier
416+
title: Total Egress Bandwidth Tier
414417
upstream_nameservers:
415418
name: upstream_nameservers
416419
title: Upstream Nameservers

0 commit comments

Comments
 (0)