Create Cluster

gke.create_cluster
ActionGoogle Cloudconnection required

Calls GKE API v1 POST /projects/{p}/locations/{l}/clusters.

Create a GKE cluster. Returns the operation — the cluster builds asynchronously, so poll gke.get_operation if a later step needs it RUNNING. The fields below cover the common case; cluster_json takes a full Cluster resource and wins over all of them.

Connection

Required
Yes — the node will not save without one
Auth type
OAuth 2.0
Providers
Google Kubernetes Engine
Secret shape
{"client_id", "client_secret", "refresh_token"}
Config it needs
project_id, location
Resolved by
config.connection_id, else node.connection_id

Configuration

17 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
project_id
GCP project id (overrides connection).
stringNo———
location
Zone (zonal cluster) or region (regional cluster). Overrides connection.
stringNo———
cluster
Name for the new cluster — lowercase letters, digits and hyphens.
stringYes———
autopilot
Create an Autopilot cluster. GKE then manages the nodes, and node_count, machine_type and disk_size_gb are ignored.
booleanNo———
node_count
Nodes per zone in the default pool. Defaults to 3. Standard clusters only.
numberNo—≥ 0—
machine_type
Node machine type, e.g. e2-medium, n2-standard-4. Defaults to e2-medium.
stringNo———
disk_size_gb
Node boot-disk size in GB (minimum 10). Defaults to 100.
numberNo—≥ 1—
network
VPC network name. Defaults to the project's default network.
stringNo———
subnetwork
Subnetwork name in the cluster's region. Optional.
stringNo———
node_locations
Zones the nodes run in. Defaults to the cluster's own location.
arrayNo—array of string—
release_channel
RAPID, REGULAR, STABLE or EXTENDED. Leave empty for no channel.
stringNo———
initial_version
Initial cluster version. Leave empty for the channel or location default.
stringNo———
workload_identity
Enable Workload Identity (pool <project>.svc.id.goog). Also turns on the cluster's OIDC issuer, which gke.get_jwks and gke.get_openid_config need.
booleanNo———
service_account
Service-account email the nodes run as. Optional; the caller needs iam.serviceAccounts.actAs on it.
stringNo———
oauth_scopes
OAuth scopes for the node service account. Optional.
arrayNo—array of string—
labels
Resource labels for the cluster.
objectNo———
cluster_json
A full Cluster resource. Wins over every field above — use it for anything they do not express (private clusters, Workload Identity, IP aliasing…).
objectNo———

Output

One shape.

result

FieldTypeExample
ok
boolean—
cluster
string—
operation
string—
done
boolean—
status
string—
{
  "cluster": "",
  "done": false,
  "ok": false,
  "operation": "",
  "status": ""
}

See Create Cluster run in a workflow.

In a technical demo we add the Google Kubernetes Engine connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.