Skip to content
Proud to collaborate with Microsoft for Startups

cluster.provision-gke ​

Provision a GKE cluster, register Kubernetes access, and optionally verify it.

Overview ​

PropertyValue
Workflow typeDag
LibraryApp-clusters-gcp
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
organization_uuiduuidYes—Organization that will own the generated Kubernetes connection.
gcp_connection_uuiduuidYes—GCP CloudConnection UUID used for provider API calls.
project_idstringYes—GCP project ID.
locationstringYes—GKE region or zone.
cluster_namestringYes—GKE cluster name.
display_namestringNo—Display name for the registered Kubernetes connection.
network_namestringNo—VPC network name to validate and pass to GKE.
subnetwork_namestringNo—Optional subnetwork name.
kubernetes_versionstringNo—Desired control-plane version.
release_channelstringNo—GKE release channel such as REGULAR.
initial_node_countintegerNo—Default node count for the legacy default pool when node_pools is omitted.
machine_typestringNo—Default node machine type for the legacy pool or explicit node pools that omit machine_type.
disk_size_gbintegerNo—Default node boot disk size for explicit node pools.
node_service_accountstringNo—Default service account email for nodes.
node_poolsjsonNo—Explicit GKE node pools to create after control-plane readiness. Each item may declare name, node_count, machine_type, disk_size_gb, disk_type, image_type, service_account, oauth_scopes, labels, tags, taints, metadata, autoscaling, management, upgrade_settings, version, max_pods_per_node, spot, or preemptible.
remove_default_node_poolbooleanNo—Remove the default GKE pool during cluster creation; defaults true when node_pools is supplied.
labelsjsonNo—Labels for provider resources and connection metadata.
private_clusterbooleanNo—Whether to create a private GKE cluster.
deletion_protectionbooleanNo—GKE deletion protection setting.
register_connectionbooleanNo—Register a Kubernetes CloudConnection after provisioning.
verify_connectionbooleanNo—Verify the registered Kubernetes CloudConnection.
actorstringNo—Caller initiating the workflow.
timeout_secondsintegerNo—Provider operation wait timeout.
poll_intervalintegerNo—Provider operation poll interval.

Output Schema ​

FieldTypeRequiredDefaultDescription
organization_uuiduuidNo—Echoed organization UUID.
gcp_connection_uuiduuidNo—GCP CloudConnection UUID used.
kubernetes_connection_uuiduuidNo—Registered Kubernetes CloudConnection UUID.
project_idstringNo—GCP project ID.
locationstringNo—GKE region or zone.
cluster_namestringNo—GKE cluster name.
display_namestringNo—Display name for the registered Kubernetes connection.
network_namestringNo—VPC network name to validate and pass to GKE.
subnetwork_namestringNo—Optional subnetwork name.
kubernetes_versionstringNo—Desired control-plane version.
release_channelstringNo—GKE release channel such as REGULAR.
initial_node_countintegerNo—Default node count for the legacy default pool when node_pools is omitted.
machine_typestringNo—Default node machine type for the legacy pool or explicit node pools that omit machine_type.
disk_size_gbintegerNo—Default node boot disk size for explicit node pools.
node_service_accountstringNo—Default service account email for nodes.
node_poolsjsonNo—Explicit GKE node pools to create after control-plane readiness.
remove_default_node_poolbooleanNo—Remove the default GKE pool during cluster creation.
labelsjsonNo—Labels for provider resources and connection metadata.
private_clusterbooleanNo—Whether to create a private GKE cluster.
deletion_protectionbooleanNo—GKE deletion protection setting.
actorstringNo—Caller initiating the workflow.
timeout_secondsintegerNo—Provider operation wait timeout.
poll_intervalintegerNo—Provider operation poll interval.
workflow_run_uuidstringNo—Engine DAG run UUID for child step state.
retried_fromstringNo—Previous terminal state restored by engine retry.
retry_countintegerNo—Number of retry attempts recorded by the engine.
endpointstringNo—Kubernetes API endpoint.
provider_resource_idstringNo—Provider-native GKE cluster resource ID.
provider_cluster_refstringNo—Provider-neutral alias for the GKE cluster resource ID.
statusstringNo—Final provider cluster status.
project_describejsonNo—Output from gcp.compute.project.describe.
network_describejsonNo—Output from gcp.compute.network.describe.
create_clusterjsonNo—Output from gcp.gke.cluster.create.
wait_clusterjsonNo—Output from gcp.gke.operation.wait.
create_node_poolsjsonNo—Batch output from gcp.gke.node_pools.create.
wait_node_poolsjsonNo—Batch output from gcp.gke.node_pools.wait_ready.
build_kubeconfigjsonNo—Output from gcp.gke.build_kubeconfig; carries cluster metadata (api_server, ca_certificate) only.
register_connectionjsonNo—Output from cluster.register-kubernetes-connection.
verify_connectionjsonNo—Output from cluster.verify-kubernetes-connection.
compensation_triggerjsonNo—DAG compensation trigger.
comp_current_layerjsonNo—Current compensation layer.
comp_queuejsonNo—Remaining compensation queue.
comp_retry_countjsonNo—Current compensation retry count.
failure_reasonstringNo—Engine failure reason.
failed_stepjsonNo—Failed DAG step.
failed_layerjsonNo—Failed DAG layer.
failed_at_statejsonNo—Failed state metadata.
errorstringNo—Error message.
error_typestringNo—Error class.

DAG Layers ​

#LayerStepsCompensation
1preflightgcp.compute.project.describe, gcp.compute.network.describe—
2create_clustergcp.gke.cluster.createcluster.delete-gke
3wait_clustergcp.gke.operation.wait—
4create_node_poolsgcp.gke.node_pools.createcluster.delete-gke
5wait_node_poolsgcp.gke.node_pools.wait_ready—
6connection_materialgcp.gke.build_kubeconfig—
7registercluster.register-kubernetes-connectioncluster.delete
8verifycluster.verify-kubernetes-connection—

Execution Flow ​

Compensation ​

When any layer fails, its compensation steps run in reverse order to roll back the work completed so far.

Sub-workflows ​

Sub-workflowStep name
gcp.compute.project.describeproject_describe
gcp.compute.network.describenetwork_describe
gcp.gke.cluster.createcreate_cluster
gcp.gke.operation.waitwait_cluster
gcp.gke.node_pools.createcreate_node_pools
gcp.gke.node_pools.wait_readywait_node_pools
gcp.gke.build_kubeconfigbuild_kubeconfig
cluster.register-kubernetes-connectionregister_connection
cluster.verify-kubernetes-connectionverify_connection
cluster.delete-gkedelete_gke_cluster
cluster.deletedelete_registered_cluster

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "cluster.provision-gke",
  "initial_data": {
    "organization_uuid": "value",
    "gcp_connection_uuid": "value",
    "project_id": "value",
    "location": "value"
  }
}