diff --git a/README.md b/README.md index 669b72786..9613baa8e 100644 --- a/README.md +++ b/README.md @@ -367,6 +367,7 @@ The node_pools variable takes the following parameters: | queued_provisioning | Makes nodes obtainable through the ProvisioningRequest API exclusively. | | Optional | | gpu_sharing_strategy | The type of GPU sharing strategy to enable on the GPU node. Accepted values are: "TIME_SHARING" and "MPS". | | Optional | | max_shared_clients_per_gpu | The maximum number of containers that can share a GPU. | | Optional | +| total_egress_bandwidth_tier | Specifies the total network bandwidth tier. | | Optional | | consume_reservation_type | The type of reservation consumption. Accepted values are: "UNSPECIFIED": Default value (should not be specified). "NO_RESERVATION": Do not consume from any reserved capacity, "ANY_RESERVATION": Consume any reservation available, "SPECIFIC_RESERVATION": Must consume from a specific reservation. Must specify key value fields for specifying the reservations. | | Optional | | reservation_affinity_key | The label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify "compute.googleapis.com/reservation-name" as the key and specify the name of your reservation as its value. | | Optional | | reservation_affinity_values | The list of label values of reservation resources. For example: the name of the specific reservation when using a key of "compute.googleapis.com/reservation-name". This should be passed as comma separated string. | | Optional | diff --git a/autogen/main/README.md b/autogen/main/README.md index 222bd22e1..edfe3bff7 100644 --- a/autogen/main/README.md +++ b/autogen/main/README.md @@ -263,6 +263,7 @@ The node_pools variable takes the following parameters: | queued_provisioning | Makes nodes obtainable through the ProvisioningRequest API exclusively. | | Optional | | gpu_sharing_strategy | The type of GPU sharing strategy to enable on the GPU node. Accepted values are: "TIME_SHARING" and "MPS". | | Optional | | max_shared_clients_per_gpu | The maximum number of containers that can share a GPU. | | Optional | +| total_egress_bandwidth_tier | Specifies the total network bandwidth tier. | | Optional | | consume_reservation_type | The type of reservation consumption. Accepted values are: "UNSPECIFIED": Default value (should not be specified). "NO_RESERVATION": Do not consume from any reserved capacity, "ANY_RESERVATION": Consume any reservation available, "SPECIFIC_RESERVATION": Must consume from a specific reservation. Must specify key value fields for specifying the reservations. | | Optional | | reservation_affinity_key | The label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify "compute.googleapis.com/reservation-name" as the key and specify the name of your reservation as its value. | | Optional | | reservation_affinity_values | The list of label values of reservation resources. For example: the name of the specific reservation when using a key of "compute.googleapis.com/reservation-name". This should be passed as comma separated string. | | Optional | diff --git a/autogen/main/cluster.tf.tmpl b/autogen/main/cluster.tf.tmpl index b493d04f7..f3311b204 100644 --- a/autogen/main/cluster.tf.tmpl +++ b/autogen/main/cluster.tf.tmpl @@ -886,6 +886,13 @@ resource "google_container_node_pool" "windows_pools" { {% else %} enable_private_nodes = lookup(network_config.value, "enable_private_nodes", null) {% endif %} + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } diff --git a/cluster.tf b/cluster.tf index d53799e50..e8be9ec53 100644 --- a/cluster.tf +++ b/cluster.tf @@ -597,6 +597,13 @@ resource "google_container_node_pool" "pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = lookup(network_config.value, "enable_private_nodes", null) + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } @@ -894,6 +901,13 @@ resource "google_container_node_pool" "windows_pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = lookup(network_config.value, "enable_private_nodes", null) + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } diff --git a/modules/beta-private-cluster-update-variant/README.md b/modules/beta-private-cluster-update-variant/README.md index 5d97be4c6..b3d43f020 100644 --- a/modules/beta-private-cluster-update-variant/README.md +++ b/modules/beta-private-cluster-update-variant/README.md @@ -422,6 +422,7 @@ The node_pools variable takes the following parameters: | queued_provisioning | Makes nodes obtainable through the ProvisioningRequest API exclusively. | | Optional | | gpu_sharing_strategy | The type of GPU sharing strategy to enable on the GPU node. Accepted values are: "TIME_SHARING" and "MPS". | | Optional | | max_shared_clients_per_gpu | The maximum number of containers that can share a GPU. | | Optional | +| total_egress_bandwidth_tier | Specifies the total network bandwidth tier. | | Optional | | consume_reservation_type | The type of reservation consumption. Accepted values are: "UNSPECIFIED": Default value (should not be specified). "NO_RESERVATION": Do not consume from any reserved capacity, "ANY_RESERVATION": Consume any reservation available, "SPECIFIC_RESERVATION": Must consume from a specific reservation. Must specify key value fields for specifying the reservations. | | Optional | | reservation_affinity_key | The label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify "compute.googleapis.com/reservation-name" as the key and specify the name of your reservation as its value. | | Optional | | reservation_affinity_values | The list of label values of reservation resources. For example: the name of the specific reservation when using a key of "compute.googleapis.com/reservation-name". This should be passed as comma separated string. | | Optional | diff --git a/modules/beta-private-cluster-update-variant/cluster.tf b/modules/beta-private-cluster-update-variant/cluster.tf index d4f320e36..320a6b0bb 100644 --- a/modules/beta-private-cluster-update-variant/cluster.tf +++ b/modules/beta-private-cluster-update-variant/cluster.tf @@ -755,6 +755,13 @@ resource "google_container_node_pool" "pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = var.enable_private_nodes + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } @@ -1066,6 +1073,13 @@ resource "google_container_node_pool" "windows_pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = var.enable_private_nodes + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } diff --git a/modules/beta-private-cluster/README.md b/modules/beta-private-cluster/README.md index 1077d7fc8..b87127320 100644 --- a/modules/beta-private-cluster/README.md +++ b/modules/beta-private-cluster/README.md @@ -400,6 +400,7 @@ The node_pools variable takes the following parameters: | queued_provisioning | Makes nodes obtainable through the ProvisioningRequest API exclusively. | | Optional | | gpu_sharing_strategy | The type of GPU sharing strategy to enable on the GPU node. Accepted values are: "TIME_SHARING" and "MPS". | | Optional | | max_shared_clients_per_gpu | The maximum number of containers that can share a GPU. | | Optional | +| total_egress_bandwidth_tier | Specifies the total network bandwidth tier. | | Optional | | consume_reservation_type | The type of reservation consumption. Accepted values are: "UNSPECIFIED": Default value (should not be specified). "NO_RESERVATION": Do not consume from any reserved capacity, "ANY_RESERVATION": Consume any reservation available, "SPECIFIC_RESERVATION": Must consume from a specific reservation. Must specify key value fields for specifying the reservations. | | Optional | | reservation_affinity_key | The label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify "compute.googleapis.com/reservation-name" as the key and specify the name of your reservation as its value. | | Optional | | reservation_affinity_values | The list of label values of reservation resources. For example: the name of the specific reservation when using a key of "compute.googleapis.com/reservation-name". This should be passed as comma separated string. | | Optional | diff --git a/modules/beta-private-cluster/cluster.tf b/modules/beta-private-cluster/cluster.tf index 29f11bb7e..2bd667bae 100644 --- a/modules/beta-private-cluster/cluster.tf +++ b/modules/beta-private-cluster/cluster.tf @@ -674,6 +674,13 @@ resource "google_container_node_pool" "pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = var.enable_private_nodes + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } @@ -984,6 +991,13 @@ resource "google_container_node_pool" "windows_pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = var.enable_private_nodes + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } diff --git a/modules/beta-public-cluster-update-variant/README.md b/modules/beta-public-cluster-update-variant/README.md index bbb58d12f..5602f7f3b 100644 --- a/modules/beta-public-cluster-update-variant/README.md +++ b/modules/beta-public-cluster-update-variant/README.md @@ -409,6 +409,7 @@ The node_pools variable takes the following parameters: | queued_provisioning | Makes nodes obtainable through the ProvisioningRequest API exclusively. | | Optional | | gpu_sharing_strategy | The type of GPU sharing strategy to enable on the GPU node. Accepted values are: "TIME_SHARING" and "MPS". | | Optional | | max_shared_clients_per_gpu | The maximum number of containers that can share a GPU. | | Optional | +| total_egress_bandwidth_tier | Specifies the total network bandwidth tier. | | Optional | | consume_reservation_type | The type of reservation consumption. Accepted values are: "UNSPECIFIED": Default value (should not be specified). "NO_RESERVATION": Do not consume from any reserved capacity, "ANY_RESERVATION": Consume any reservation available, "SPECIFIC_RESERVATION": Must consume from a specific reservation. Must specify key value fields for specifying the reservations. | | Optional | | reservation_affinity_key | The label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify "compute.googleapis.com/reservation-name" as the key and specify the name of your reservation as its value. | | Optional | | reservation_affinity_values | The list of label values of reservation resources. For example: the name of the specific reservation when using a key of "compute.googleapis.com/reservation-name". This should be passed as comma separated string. | | Optional | diff --git a/modules/beta-public-cluster-update-variant/cluster.tf b/modules/beta-public-cluster-update-variant/cluster.tf index b20fa7483..32791ce75 100644 --- a/modules/beta-public-cluster-update-variant/cluster.tf +++ b/modules/beta-public-cluster-update-variant/cluster.tf @@ -725,6 +725,13 @@ resource "google_container_node_pool" "pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = lookup(network_config.value, "enable_private_nodes", null) + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } @@ -1036,6 +1043,13 @@ resource "google_container_node_pool" "windows_pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = lookup(network_config.value, "enable_private_nodes", null) + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } diff --git a/modules/beta-public-cluster/README.md b/modules/beta-public-cluster/README.md index c07bc9581..f4ec996fe 100644 --- a/modules/beta-public-cluster/README.md +++ b/modules/beta-public-cluster/README.md @@ -387,6 +387,7 @@ The node_pools variable takes the following parameters: | queued_provisioning | Makes nodes obtainable through the ProvisioningRequest API exclusively. | | Optional | | gpu_sharing_strategy | The type of GPU sharing strategy to enable on the GPU node. Accepted values are: "TIME_SHARING" and "MPS". | | Optional | | max_shared_clients_per_gpu | The maximum number of containers that can share a GPU. | | Optional | +| total_egress_bandwidth_tier | Specifies the total network bandwidth tier. | | Optional | | consume_reservation_type | The type of reservation consumption. Accepted values are: "UNSPECIFIED": Default value (should not be specified). "NO_RESERVATION": Do not consume from any reserved capacity, "ANY_RESERVATION": Consume any reservation available, "SPECIFIC_RESERVATION": Must consume from a specific reservation. Must specify key value fields for specifying the reservations. | | Optional | | reservation_affinity_key | The label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify "compute.googleapis.com/reservation-name" as the key and specify the name of your reservation as its value. | | Optional | | reservation_affinity_values | The list of label values of reservation resources. For example: the name of the specific reservation when using a key of "compute.googleapis.com/reservation-name". This should be passed as comma separated string. | | Optional | diff --git a/modules/beta-public-cluster/cluster.tf b/modules/beta-public-cluster/cluster.tf index d76574eb3..8457a41b2 100644 --- a/modules/beta-public-cluster/cluster.tf +++ b/modules/beta-public-cluster/cluster.tf @@ -644,6 +644,13 @@ resource "google_container_node_pool" "pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = lookup(network_config.value, "enable_private_nodes", null) + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } @@ -954,6 +961,13 @@ resource "google_container_node_pool" "windows_pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = lookup(network_config.value, "enable_private_nodes", null) + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } diff --git a/modules/private-cluster-update-variant/README.md b/modules/private-cluster-update-variant/README.md index 4339bacbb..297c559e7 100644 --- a/modules/private-cluster-update-variant/README.md +++ b/modules/private-cluster-update-variant/README.md @@ -402,6 +402,7 @@ The node_pools variable takes the following parameters: | queued_provisioning | Makes nodes obtainable through the ProvisioningRequest API exclusively. | | Optional | | gpu_sharing_strategy | The type of GPU sharing strategy to enable on the GPU node. Accepted values are: "TIME_SHARING" and "MPS". | | Optional | | max_shared_clients_per_gpu | The maximum number of containers that can share a GPU. | | Optional | +| total_egress_bandwidth_tier | Specifies the total network bandwidth tier. | | Optional | | consume_reservation_type | The type of reservation consumption. Accepted values are: "UNSPECIFIED": Default value (should not be specified). "NO_RESERVATION": Do not consume from any reserved capacity, "ANY_RESERVATION": Consume any reservation available, "SPECIFIC_RESERVATION": Must consume from a specific reservation. Must specify key value fields for specifying the reservations. | | Optional | | reservation_affinity_key | The label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify "compute.googleapis.com/reservation-name" as the key and specify the name of your reservation as its value. | | Optional | | reservation_affinity_values | The list of label values of reservation resources. For example: the name of the specific reservation when using a key of "compute.googleapis.com/reservation-name". This should be passed as comma separated string. | | Optional | diff --git a/modules/private-cluster-update-variant/cluster.tf b/modules/private-cluster-update-variant/cluster.tf index fa03099a0..f49d397e3 100644 --- a/modules/private-cluster-update-variant/cluster.tf +++ b/modules/private-cluster-update-variant/cluster.tf @@ -707,6 +707,13 @@ resource "google_container_node_pool" "pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = var.enable_private_nodes + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } @@ -1005,6 +1012,13 @@ resource "google_container_node_pool" "windows_pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = var.enable_private_nodes + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } diff --git a/modules/private-cluster/README.md b/modules/private-cluster/README.md index 753b3fd4c..6c019da49 100644 --- a/modules/private-cluster/README.md +++ b/modules/private-cluster/README.md @@ -380,6 +380,7 @@ The node_pools variable takes the following parameters: | queued_provisioning | Makes nodes obtainable through the ProvisioningRequest API exclusively. | | Optional | | gpu_sharing_strategy | The type of GPU sharing strategy to enable on the GPU node. Accepted values are: "TIME_SHARING" and "MPS". | | Optional | | max_shared_clients_per_gpu | The maximum number of containers that can share a GPU. | | Optional | +| total_egress_bandwidth_tier | Specifies the total network bandwidth tier. | | Optional | | consume_reservation_type | The type of reservation consumption. Accepted values are: "UNSPECIFIED": Default value (should not be specified). "NO_RESERVATION": Do not consume from any reserved capacity, "ANY_RESERVATION": Consume any reservation available, "SPECIFIC_RESERVATION": Must consume from a specific reservation. Must specify key value fields for specifying the reservations. | | Optional | | reservation_affinity_key | The label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify "compute.googleapis.com/reservation-name" as the key and specify the name of your reservation as its value. | | Optional | | reservation_affinity_values | The list of label values of reservation resources. For example: the name of the specific reservation when using a key of "compute.googleapis.com/reservation-name". This should be passed as comma separated string. | | Optional | diff --git a/modules/private-cluster/cluster.tf b/modules/private-cluster/cluster.tf index 3ca8117ae..9651a6761 100644 --- a/modules/private-cluster/cluster.tf +++ b/modules/private-cluster/cluster.tf @@ -627,6 +627,13 @@ resource "google_container_node_pool" "pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = var.enable_private_nodes + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } } @@ -924,6 +931,13 @@ resource "google_container_node_pool" "windows_pools" { content { pod_range = lookup(network_config.value, "pod_range", null) enable_private_nodes = var.enable_private_nodes + + dynamic "network_performance_config" { + for_each = lookup(each.value, "total_egress_bandwidth_tier", "") != "" ? [1] : [] + content { + total_egress_bandwidth_tier = lookup(each.value, "total_egress_bandwidth_tier", "") + } + } } }