diff --git a/modules/gke-nodepool/main.tf b/modules/gke-nodepool/main.tf index f23d027c2..6a3714f0f 100644 --- a/modules/gke-nodepool/main.tf +++ b/modules/gke-nodepool/main.tf @@ -81,7 +81,10 @@ resource "google_container_node_pool" "nodepool" { dynamic "autoscaling" { for_each = ( - try(var.nodepool_config.autoscaling.use_total_nodes, false) ? [] : [""] + try(var.nodepool_config.autoscaling, null) != null + && + !try(var.nodepool_config.autoscaling.use_total_nodes, false) + ? [""] : [] ) content { location_policy = try(var.nodepool_config.autoscaling.location_policy, null) @@ -94,9 +97,9 @@ resource "google_container_node_pool" "nodepool" { try(var.nodepool_config.autoscaling.use_total_nodes, false) ? [""] : [] ) content { - location_policy = try(var.nodepool_config.autoscaling.location_policy, null) - max_node_count = try(var.nodepool_config.autoscaling.max_node_count, null) - min_node_count = try(var.nodepool_config.autoscaling.min_node_count, null) + location_policy = try(var.nodepool_config.autoscaling.location_policy, null) + total_max_node_count = try(var.nodepool_config.autoscaling.max_node_count, null) + total_min_node_count = try(var.nodepool_config.autoscaling.min_node_count, null) } } diff --git a/tests/modules/gke_nodepool/test_plan.py b/tests/modules/gke_nodepool/test_plan.py index 9b22c8520..fd63f3320 100644 --- a/tests/modules/gke_nodepool/test_plan.py +++ b/tests/modules/gke_nodepool/test_plan.py @@ -17,6 +17,7 @@ def test_defaults(plan_runner): "Test resources created with variable defaults." _, resources = plan_runner() assert len(resources) == 1 + assert resources[0]['values']['autoscaling'] == [] def test_service_account(plan_runner): @@ -34,6 +35,22 @@ def test_nodepool_config(plan_runner): upgrade_settings = { max_surge = 3, max_unavailable = 3 } }''' _, resources = plan_runner(nodepool_config=nodepool_config) + assert resources[0]['values']['autoscaling'] == [{ + 'location_policy': None, + 'max_node_count': None, + 'min_node_count': None, + 'total_max_node_count': 3, + 'total_min_node_count': None + }] + nodepool_config = '{ autoscaling = { max_node_count = 3} }' + _, resources = plan_runner(nodepool_config=nodepool_config) + assert resources[0]['values']['autoscaling'] == [{ + 'location_policy': None, + 'max_node_count': 3, + 'min_node_count': None, + 'total_max_node_count': None, + 'total_min_node_count': None + }] def test_node_config(plan_runner):