Skip to content
Proud to collaborate with Microsoft for Startups

cluster.provision-azure-vm ​

Provision an Azure VM-backed Kubernetes cluster, register it as a Kubernetes connection, and verify API access.

Overview ​

PropertyValue
Workflow typeDag
LibraryApp-clusters-azure
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
organization_uuiduuidYes—Organization that will own the generated Kubernetes connection.
azure_connection_uuiduuidYes—Azure CloudConnection UUID used for provider API calls.
resource_groupstringYes—Azure resource group.
zonestringYes—GCE zone; mapped to azure.compute.vm.ensure region.
cluster_namestringYes—Logical Kubernetes cluster name and VM default name.
vm_namestringNo—GCE VM/MIG name; defaults to cluster_name.
display_namestringNo—Display name for the registered Kubernetes connection.
network_namestringNo—VPC network name to validate and secure.
instance_typestringNo—GCE machine type.
cpuintegerNo—vCPU count when supported by LTIP.
memory_gbintegerNo—Memory GiB when supported by LTIP.
imagestringNo—VM OS image.
kubernetes_distributionstringNo—Kubernetes bootstrap distribution.
kubernetes_versionstringNo—Kubernetes version to install when supported.
ssh_source_rangesjsonNo—Optional CIDRs for SSH bootstrap/admin access.
api_server_source_rangesjsonNo—CIDRs allowed to reach the Kubernetes API.
labelsjsonNo—Provider labels and connection metadata.
metadatajsonNo—Additional VM metadata.
register_connectionbooleanNo—Register a Kubernetes CloudConnection after bootstrap.
verify_connectionbooleanNo—Verify the registered Kubernetes CloudConnection.
timeout_secondsintegerNo—Bootstrap collection timeout.
poll_intervalintegerNo—Bootstrap collection poll interval.

Output Schema ​

FieldTypeRequiredDefaultDescription
validate_credentialsjsonNo—Output from azure.auth.validate_credentials.
vm_describejsonNo—Output from azure.compute.vm.describe.
organization_uuiduuidNo—Echoed organization UUID.
azure_connection_uuiduuidNo—Azure CloudConnection UUID used.
kubernetes_connection_uuiduuidNo—Registered Kubernetes CloudConnection UUID.
resource_groupstringNo—Azure resource group.
zonestringNo—GCE zone.
cluster_namestringNo—Logical Kubernetes cluster name.
vm_namestringNo—VM/MIG name.
provider_resource_idstringNo—Provider VM/MIG resource ID.
endpointstringNo—Kubernetes API endpoint.
ensure_vmjsonNo—Output from azure.compute.vm.ensure.
collect_kubeconfigjsonNo—Output from cluster.azure-vm.collect-kubeconfig; may contain sensitive kubeconfig material.
register_connectionjsonNo—Output from cluster.register-kubernetes-connection.
verify_connectionjsonNo—Output from cluster.verify-kubernetes-connection.
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.
failure_typestringNo——
failed_actionstringNo——

DAG Layers ​

#LayerStepsCompensation
1preflightazure.auth.validate_credentials, azure.compute.vm.describe—
2vmazure.compute.vm.create—
3connection_materialcluster.azure-vm.collect-kubeconfig—
4registercluster.register-kubernetes-connection—
5verifycluster.verify-kubernetes-connection—

Execution Flow ​

Sub-workflows ​

Sub-workflowStep name
azure.auth.validate_credentialsvalidate_credentials
azure.compute.vm.describevm_describe
azure.compute.vm.createensure_vm
cluster.azure-vm.collect-kubeconfigcollect_kubeconfig
cluster.register-kubernetes-connectionregister_connection
cluster.verify-kubernetes-connectionverify_connection

API Usage ​

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

{
  "workflow_type": "cluster.provision-azure-vm",
  "initial_data": {
    "organization_uuid": "value",
    "azure_connection_uuid": "value",
    "resource_group": "value",
    "zone": "value"
  }
}