Skip to content
Proud to collaborate with Microsoft for Startups

cluster.provision-gcp-vm ​

Provision a GCP VM backing a VM-style cluster.

Overview ​

PropertyValue
Workflow typeLinear
LibraryApp-clusters-gcp
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
organization_uuiduuidYes—Organization UUID for audit and parent cluster correlation.
gcp_connection_uuiduuidYes—GCP CloudConnection UUID used for provider calls.
project_idstringYes—GCP project ID.
zonestringYes—GCE zone.
cluster_namestringYes—Logical VM cluster name.
vm_namestringNo—VM name; defaults to cluster_name.
instance_typestringNo—GCE machine type.
cpuintegerNo—vCPU count.
memory_gbintegerNo—Memory GiB.
imagestringNo—VM OS image.
startup_scriptstringNo—Optional startup script.
metadatajsonNo—VM metadata.
labelsjsonNo—Labels carried as metadata.
credential_payloadjsonNo—Optional Kubernetes credential payload when bootstrap supplied it externally.
collect_kubeconfigbooleanNo—Collect kubeconfig from VM serial output after VM ensure.
endpoint_hoststringNo—Host/IP to write into kubeconfig server URL.
api_serverstringNo—Full Kubernetes API server URL override.
serial_port_startintegerNo—Serial output byte offset for kubeconfig collection.
timeout_secondsintegerNo—Kubeconfig collection timeout.
poll_intervalintegerNo—Kubeconfig collection poll interval.
actorstringNo—Caller initiating the workflow.

Output Schema ​

FieldTypeRequiredDefaultDescription
organization_uuiduuidYes—Organization UUID for audit and parent cluster correlation.
gcp_connection_uuiduuidYes—GCP CloudConnection UUID used for provider calls.
project_idstringYes—GCP project ID.
zonestringYes—GCE zone.
cluster_namestringYes—Logical VM cluster name.
vm_namestringNo—VM name; defaults to cluster_name.
instance_typestringNo—GCE machine type.
cpuintegerNo—vCPU count.
memory_gbintegerNo—Memory GiB.
imagestringNo—VM OS image.
startup_scriptstringNo—Optional startup script.
metadatajsonNo—VM metadata.
labelsjsonNo—Labels carried as metadata.
credential_payloadjsonNo—Optional Kubernetes credential payload when bootstrap supplied it externally.
collect_kubeconfigbooleanNo—Collect kubeconfig from VM serial output after VM ensure.
endpoint_hoststringNo—Host/IP to write into kubeconfig server URL.
api_serverstringNo—Full Kubernetes API server URL override.
serial_port_startintegerNo—Serial output byte offset for kubeconfig collection.
timeout_secondsintegerNo—Kubeconfig collection timeout.
poll_intervalintegerNo—Kubeconfig collection poll interval.
actorstringNo—Caller initiating the workflow.
ensure_vmjsonNo—Output from gcp.compute.vm.ensure.
collect_kubeconfig_resultjsonNo—Output from cluster.gcp-vm.collect-kubeconfig.
provider_resource_idstringNo—Provider VM resource ID.
provider_cluster_refstringNo—Provider VM cluster reference.
statusstringNo—Normalized provider status.
phasestringNo—Raw VM phase.
readybooleanNo—True when backing VM is available.
completed_atstringNo—ISO completion timestamp.
failure_reasonstringNo——
failed_stepjsonNo——
failed_layerjsonNo——
failed_at_statejsonNo——
errorstringNo——
error_typestringNo——

States ​

StateInitialTerminalSuccessAuto-advanceDescription
pendingYesNo—ensure_vm—
collecting_kubeconfigNoNo—complete—
ensuring_vmNoNo—collect_kubeconfig—
completedNoYesYes——
failedNoYesNo——

State Diagram ​

Transitions ​

FromActionToDescription
pendingensure_vmensuring_vm—
ensuring_vmcollect_kubeconfigcollecting_kubeconfig—
collecting_kubeconfigcompletecompleted—
* (any state)failfailed—

API Usage ​

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

{
  "workflow_type": "cluster.provision-gcp-vm",
  "initial_data": {
    "organization_uuid": "value",
    "gcp_connection_uuid": "value",
    "project_id": "value",
    "zone": "value"
  }
}