gke operator: node pool is created with 0 nodes by default, causing a apply failure

Summary

In the google/gke/operator scenario, a minimal node_pools config creates a node pool with 0 nodes, so no pods can be scheduled. terraform apply then hangs while waiting for the operator Deployment rollout and eventually fails with an opaque context deadline exceeded error.

Steps to reproduce

module "gke_runner" {
  source     = ".../scenarios/google/gke/operator"
  name       = "my-runner"
  node_pools = { default = {} }   # no node_count, no autoscaling
  runners    = { main = { runner_token = "..." } }
  operator   = { version = "v1.51.0" }
}

kubectl get nodes returns none; all pods (including kube-system) stay Pending.

Cause

In modules/google/gke/variables.tf, node_pools[*].node_count defaults to 0 and autoscaling is unset, so an empty pool config yields a 0-node pool.

Proposal

  • Default node_count to 1, and/or
  • Add a validation that fails early when both node_count == 0 and autoscaling is null, with a clear message.