code: def _create_cluster_spec(
      cluster_name: str,
      zone: str,
      node_zones: List[str],
      resource_limits: dict,
      release_channel: ReleaseChannel,
  ) -> dict:
      """creates cluster spec dictionary
  
      Args:
      cluster_name: name of cluster
      zone: zone for cluster
      node_locations: zones where nodes can be created
      resource_limits: resource limits dictionary
      release_channel: release channel for cluster
  
      Returns:
      dictionary
      """
  
      # see https://cloud.google.com/container-engine/reference/rest/v1/projects.zones.clusters
      cluster_spec = {
          "name": cluster_name,
          "zone": zone,
          "ipAllocationPolicy": {"useIpAliases": "true"},
          "enable_tpu": "true",
          "autoscaling": {
              "enableNodeAutoprovisioning": "true",
              "autoprovisioningNodePoolDefaults": {
                  "oauthScopes": [
                      k.COMPUTE_SCOPE_URL,
                      k.CLOUD_PLATFORM_SCOPE_URL,
                  ],
              },
              "resourceLimits": resource_limits,
          },
          "nodePools": [
              {
                  "name": "default-pool",
                  "initialNodeCount": "3",
                  "config": {
                      "oauthScopes": [
                          "https://www.googleapis.com/auth/devstorage.read_only",
                          "https://www.googleapis.com/auth/logging.write",
                          "https://www.googleapis.com/auth/monitoring",
                          "https://www.googleapis.com/auth/service.management.readonly",
                          "https://www.googleapis.com/auth/servicecontrol",
                          "https://www.googleapis.com/auth/trace.append",
                      ],
                  },
              }
          ],
          "releaseChannel": {"channel": release_channel.value},
          "locations": node_zones,
      }
  
      return cluster_spec
  
imports: import json
  import logging
  import re
  from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple
  import googleapiclient
  import kubernetes
  import requests
  import urllib3
  import yaml
  from google.auth.credentials import Credentials
  from google.cloud.container_v1 import ClusterManagerClient
  from google.cloud.container_v1.types import NodePool, Cluster
  from googleapiclient import discovery
  from googleapiclient.http import HttpRequest
  from kubernetes.client import V1Container, V1DaemonSet, V1EnvVar, V1Job, V1JobSpec, V1ObjectMeta, V1Pod, V1PodSpec, V1PodTemplateSpec, V1ResourceRequirements, V1Toleration
  from kubernetes.client.api_client import ApiClient
  import caliban.config.experiment
  import caliban.platform.gke.constants
  import caliban.platform.gke.util
  from caliban.history.types import Experiment, Job, JobSpec, JobStatus, Platform
  from caliban.platform.cloud.types import GPU, TPU, Accelerator, GPUSpec, MachineType, TPUSpec
  from caliban.platform.gke.types import NodeImage, OpStatus, ReleaseChannel
  from caliban.platform.gke.util import trap
  import caliban.util.metrics
label_desc: Use image node_id 3 for calling a global function with example usage: _create_cluster_spec(cluster_name, zone, node_zones, resource_limits, release_channel) and returns: cluster_spec