Skip to content
Proud to collaborate with Microsoft for Startups

cluster.provision-aws-vm ​

Provision an AWS VM backing a VM-style cluster.

Overview ​

PropertyValue
Workflow typeLinear
LibraryApp-clusters-aws
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
organization_uuiduuidYes—Organization UUID for audit and parent cluster correlation.
aws_connection_uuiduuidYes—AWS CloudConnection UUID used for provider calls.
cluster_namestringYes—Logical VM cluster name.
regionstringYes—AWS region.
ami_idstringYes—AMI ID for the VM.
instance_typestringYes—EC2 instance type.
subnet_idstringYes—Subnet ID for the EC2 instance.
security_group_idslistYes—Security group IDs for the EC2 instance.
key_namestringNo—Optional EC2 key pair name.
tagsjsonNo—Tags applied to the EC2 instance.
user_datastringNo—Optional EC2 user-data script.
iam_instance_profile_namestringNo—Optional IAM instance profile name.
iam_instance_profile_arnstringNo—Optional IAM instance profile ARN.
credential_payloadjsonNo—Optional Kubernetes credential payload when bootstrap supplied it externally.
collect_kubeconfigbooleanNo—Collect kubeconfig through SSM after VM creation.
bootstrap_commandslistNo—Optional shell commands that install/start Kubernetes before kubeconfig fetch.
bootstrap_document_namestringNo—SSM document for bootstrap commands.
bootstrap_timeout_secondsintegerNo—Timeout for bootstrap command completion.
kubeconfig_output_commandstringNo—Shell command that prints kubeconfig to stdout.
kubeconfig_document_namestringNo—SSM document for kubeconfig fetch.
kubeconfig_timeout_secondsintegerNo—Timeout for kubeconfig command completion.
poll_interval_secondsintegerNo—Polling interval for SSM commands.
require_managed_instancebooleanNo—Wait for SSM managed-instance visibility before commands.
managed_instance_timeout_secondsintegerNo—Timeout while waiting for SSM managed-instance visibility.
endpoint_hoststringNo—Host/IP to write into kubeconfig server URL.
api_serverstringNo—Full Kubernetes API server URL override.
actorstringNo—Caller initiating the workflow.

Output Schema ​

FieldTypeRequiredDefaultDescription
organization_uuiduuidYes—Organization UUID for audit and parent cluster correlation.
aws_connection_uuiduuidYes—AWS CloudConnection UUID used for provider calls.
cluster_namestringYes—Logical VM cluster name.
regionstringYes—AWS region.
ami_idstringYes—AMI ID for the VM.
instance_typestringYes—EC2 instance type.
subnet_idstringYes—Subnet ID for the EC2 instance.
security_group_idslistYes—Security group IDs for the EC2 instance.
key_namestringNo—Optional EC2 key pair name.
tagsjsonNo—Tags applied to the EC2 instance.
user_datastringNo—Optional EC2 user-data script.
iam_instance_profile_namestringNo—Optional IAM instance profile name.
iam_instance_profile_arnstringNo—Optional IAM instance profile ARN.
credential_payloadjsonNo—Optional Kubernetes credential payload when bootstrap supplied it externally.
collect_kubeconfigbooleanNo—Collect kubeconfig through SSM after VM creation.
bootstrap_commandslistNo—Optional shell commands that install/start Kubernetes before kubeconfig fetch.
bootstrap_document_namestringNo—SSM document for bootstrap commands.
bootstrap_timeout_secondsintegerNo—Timeout for bootstrap command completion.
kubeconfig_output_commandstringNo—Shell command that prints kubeconfig to stdout.
kubeconfig_document_namestringNo—SSM document for kubeconfig fetch.
kubeconfig_timeout_secondsintegerNo—Timeout for kubeconfig command completion.
poll_interval_secondsintegerNo—Polling interval for SSM commands.
require_managed_instancebooleanNo—Wait for SSM managed-instance visibility before commands.
managed_instance_timeout_secondsintegerNo—Timeout while waiting for SSM managed-instance visibility.
endpoint_hoststringNo—Host/IP to write into kubeconfig server URL.
api_serverstringNo—Full Kubernetes API server URL override.
actorstringNo—Caller initiating the workflow.
create_instancejsonNo—Output from aws.ec2.create_instance.
collect_kubeconfig_resultjsonNo—Output from cluster.aws-vm.collect-kubeconfig.
terminate_instance_on_failurejsonNo—Best-effort cleanup output from aws.ec2.terminate_instance.
compensation_errorstringNo—Failure cleanup error when the created VM could not be terminated.
compensation_error_typestringNo—Failure cleanup error class.
instance_idstringNo—EC2 instance ID.
provider_cluster_refstringNo—Provider-side VM cluster reference.
private_ipstringNo—Private IPv4 address.
public_ipstringNo—Public IPv4 address if assigned.
phasestringNo—Raw EC2 instance state.
readybooleanNo—True when the VM is running.
statusstringNo—Normalized provider status.
completed_atstringNo—ISO completion timestamp.
failure_reasonstringNo—Human-readable 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.
failed_atstringNo—ISO failure timestamp.

States ​

StateInitialTerminalSuccessAuto-advanceDescription
pendingYesNo—create_instance—
collecting_kubeconfigNoNo—complete—
creating_instanceNoNo—collect_kubeconfig—
completedNoYesYes——
failedNoYesNo——

State Diagram ​

Transitions ​

FromActionToDescription
pendingcreate_instancecreating_instance—
creating_instancecollect_kubeconfigcollecting_kubeconfig—
collecting_kubeconfigcompletecompleted—
* (any state)failfailed—

API Usage ​

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

{
  "workflow_type": "cluster.provision-aws-vm",
  "initial_data": {
    "organization_uuid": "value",
    "aws_connection_uuid": "value",
    "cluster_name": "value",
    "region": "value"
  }
}