From 6fc960ea0b1d28fe7f4983a0eb55a07a1491b016 Mon Sep 17 00:00:00 2001
From: Ewa Wojtach <ewojtach@google.com>
Date: Thu, 26 Oct 2023 07:23:13 +0200
Subject: [PATCH 1/2] empty gpu sharing config fix

---
 modules/gke-nodepool/main.tf                               | 3 ++-
 tests/modules/gke_nodepool/examples/guest-accelerator.yaml | 4 +---
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/modules/gke-nodepool/main.tf b/modules/gke-nodepool/main.tf
index f5a104bd54..728d671303 100644
--- a/modules/gke-nodepool/main.tf
+++ b/modules/gke-nodepool/main.tf
@@ -168,7 +168,8 @@ resource "google_container_node_pool" "nodepool" {
         gpu_partition_size = var.node_config.guest_accelerator.gpu_driver == null ? null : var.node_config.guest_accelerator.gpu_driver.partition_size
 
         dynamic "gpu_sharing_config" {
-          for_each = var.node_config.guest_accelerator.gpu_driver != null ? [""] : []
+          #for_each = var.node_config.guest_accelerator.gpu_driver != null ? [""] : []
+          for_each = var.node_config.guest_accelerator.gpu_driver == null ? [] : (var.node_config.guest_accelerator.gpu_driver.max_shared_clients_per_gpu != null ? [""] : [])
           content {
             gpu_sharing_strategy       = var.node_config.guest_accelerator.gpu_driver.max_shared_clients_per_gpu != null ? "TIME_SHARING" : null
             max_shared_clients_per_gpu = var.node_config.guest_accelerator.gpu_driver.max_shared_clients_per_gpu
diff --git a/tests/modules/gke_nodepool/examples/guest-accelerator.yaml b/tests/modules/gke_nodepool/examples/guest-accelerator.yaml
index 5f125ef6f5..8f50505479 100644
--- a/tests/modules/gke_nodepool/examples/guest-accelerator.yaml
+++ b/tests/modules/gke_nodepool/examples/guest-accelerator.yaml
@@ -29,9 +29,7 @@ values:
         gpu_driver_installation_config:
         - gpu_driver_version: LATEST
         gpu_partition_size: null
-        gpu_sharing_config:
-        - gpu_sharing_strategy: null
-          max_shared_clients_per_gpu: null
+        gpu_sharing_config: null
         type: nvidia-tesla-a100
       gvnic: []
       machine_type: a2-highgpu-1g

From 98dde0c57f22aa08bc269582fcf6ae2ac78ff0c7 Mon Sep 17 00:00:00 2001
From: Ewa Wojtach <ewojtach@google.com>
Date: Fri, 27 Oct 2023 08:38:37 +0200
Subject: [PATCH 2/2] review comments

---
 modules/gke-nodepool/main.tf | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/modules/gke-nodepool/main.tf b/modules/gke-nodepool/main.tf
index 728d671303..40f7fcf31c 100644
--- a/modules/gke-nodepool/main.tf
+++ b/modules/gke-nodepool/main.tf
@@ -168,8 +168,10 @@ resource "google_container_node_pool" "nodepool" {
         gpu_partition_size = var.node_config.guest_accelerator.gpu_driver == null ? null : var.node_config.guest_accelerator.gpu_driver.partition_size
 
         dynamic "gpu_sharing_config" {
-          #for_each = var.node_config.guest_accelerator.gpu_driver != null ? [""] : []
-          for_each = var.node_config.guest_accelerator.gpu_driver == null ? [] : (var.node_config.guest_accelerator.gpu_driver.max_shared_clients_per_gpu != null ? [""] : [])
+          for_each = lookup(
+            lookup(var.node_config.guest_accelerator, "gpu_driver", {}),
+            "max_shared_clients_per_gpu"
+          ) != null ? [""] : []
           content {
             gpu_sharing_strategy       = var.node_config.guest_accelerator.gpu_driver.max_shared_clients_per_gpu != null ? "TIME_SHARING" : null
             max_shared_clients_per_gpu = var.node_config.guest_accelerator.gpu_driver.max_shared_clients_per_gpu