cluster.provision-aws-vm ​
Provision an AWS VM backing a VM-style cluster.
Overview ​
| Property | Value |
|---|---|
| Workflow type | Linear |
| Library | App-clusters-aws |
| Version | 1.0 |
Input Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
organization_uuid | uuid | Yes | — | Organization UUID for audit and parent cluster correlation. |
aws_connection_uuid | uuid | Yes | — | AWS CloudConnection UUID used for provider calls. |
cluster_name | string | Yes | — | Logical VM cluster name. |
region | string | Yes | — | AWS region. |
ami_id | string | Yes | — | AMI ID for the VM. |
instance_type | string | Yes | — | EC2 instance type. |
subnet_id | string | Yes | — | Subnet ID for the EC2 instance. |
security_group_ids | list | Yes | — | Security group IDs for the EC2 instance. |
key_name | string | No | — | Optional EC2 key pair name. |
tags | json | No | — | Tags applied to the EC2 instance. |
user_data | string | No | — | Optional EC2 user-data script. |
iam_instance_profile_name | string | No | — | Optional IAM instance profile name. |
iam_instance_profile_arn | string | No | — | Optional IAM instance profile ARN. |
credential_payload | json | No | — | Optional Kubernetes credential payload when bootstrap supplied it externally. |
collect_kubeconfig | boolean | No | — | Collect kubeconfig through SSM after VM creation. |
bootstrap_commands | list | No | — | Optional shell commands that install/start Kubernetes before kubeconfig fetch. |
bootstrap_document_name | string | No | — | SSM document for bootstrap commands. |
bootstrap_timeout_seconds | integer | No | — | Timeout for bootstrap command completion. |
kubeconfig_output_command | string | No | — | Shell command that prints kubeconfig to stdout. |
kubeconfig_document_name | string | No | — | SSM document for kubeconfig fetch. |
kubeconfig_timeout_seconds | integer | No | — | Timeout for kubeconfig command completion. |
poll_interval_seconds | integer | No | — | Polling interval for SSM commands. |
require_managed_instance | boolean | No | — | Wait for SSM managed-instance visibility before commands. |
managed_instance_timeout_seconds | integer | No | — | Timeout while waiting for SSM managed-instance visibility. |
endpoint_host | string | No | — | Host/IP to write into kubeconfig server URL. |
api_server | string | No | — | Full Kubernetes API server URL override. |
actor | string | No | — | Caller initiating the workflow. |
Output Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
organization_uuid | uuid | Yes | — | Organization UUID for audit and parent cluster correlation. |
aws_connection_uuid | uuid | Yes | — | AWS CloudConnection UUID used for provider calls. |
cluster_name | string | Yes | — | Logical VM cluster name. |
region | string | Yes | — | AWS region. |
ami_id | string | Yes | — | AMI ID for the VM. |
instance_type | string | Yes | — | EC2 instance type. |
subnet_id | string | Yes | — | Subnet ID for the EC2 instance. |
security_group_ids | list | Yes | — | Security group IDs for the EC2 instance. |
key_name | string | No | — | Optional EC2 key pair name. |
tags | json | No | — | Tags applied to the EC2 instance. |
user_data | string | No | — | Optional EC2 user-data script. |
iam_instance_profile_name | string | No | — | Optional IAM instance profile name. |
iam_instance_profile_arn | string | No | — | Optional IAM instance profile ARN. |
credential_payload | json | No | — | Optional Kubernetes credential payload when bootstrap supplied it externally. |
collect_kubeconfig | boolean | No | — | Collect kubeconfig through SSM after VM creation. |
bootstrap_commands | list | No | — | Optional shell commands that install/start Kubernetes before kubeconfig fetch. |
bootstrap_document_name | string | No | — | SSM document for bootstrap commands. |
bootstrap_timeout_seconds | integer | No | — | Timeout for bootstrap command completion. |
kubeconfig_output_command | string | No | — | Shell command that prints kubeconfig to stdout. |
kubeconfig_document_name | string | No | — | SSM document for kubeconfig fetch. |
kubeconfig_timeout_seconds | integer | No | — | Timeout for kubeconfig command completion. |
poll_interval_seconds | integer | No | — | Polling interval for SSM commands. |
require_managed_instance | boolean | No | — | Wait for SSM managed-instance visibility before commands. |
managed_instance_timeout_seconds | integer | No | — | Timeout while waiting for SSM managed-instance visibility. |
endpoint_host | string | No | — | Host/IP to write into kubeconfig server URL. |
api_server | string | No | — | Full Kubernetes API server URL override. |
actor | string | No | — | Caller initiating the workflow. |
create_instance | json | No | — | Output from aws.ec2.create_instance. |
collect_kubeconfig_result | json | No | — | Output from cluster.aws-vm.collect-kubeconfig. |
terminate_instance_on_failure | json | No | — | Best-effort cleanup output from aws.ec2.terminate_instance. |
compensation_error | string | No | — | Failure cleanup error when the created VM could not be terminated. |
compensation_error_type | string | No | — | Failure cleanup error class. |
instance_id | string | No | — | EC2 instance ID. |
provider_cluster_ref | string | No | — | Provider-side VM cluster reference. |
private_ip | string | No | — | Private IPv4 address. |
public_ip | string | No | — | Public IPv4 address if assigned. |
phase | string | No | — | Raw EC2 instance state. |
ready | boolean | No | — | True when the VM is running. |
status | string | No | — | Normalized provider status. |
completed_at | string | No | — | ISO completion timestamp. |
failure_reason | string | No | — | Human-readable failure reason. |
failed_step | json | No | — | Failed DAG step. |
failed_layer | json | No | — | Failed DAG layer. |
failed_at_state | json | No | — | Failed state metadata. |
error | string | No | — | Error message. |
error_type | string | No | — | Error class. |
failed_at | string | No | — | ISO failure timestamp. |
States ​
| State | Initial | Terminal | Success | Auto-advance | Description |
|---|---|---|---|---|---|
pending | Yes | No | — | create_instance | — |
collecting_kubeconfig | No | No | — | complete | — |
creating_instance | No | No | — | collect_kubeconfig | — |
completed | No | Yes | Yes | — | — |
failed | No | Yes | No | — | — |
State Diagram ​
Transitions ​
| From | Action | To | Description |
|---|---|---|---|
pending | create_instance | creating_instance | — |
creating_instance | collect_kubeconfig | collecting_kubeconfig | — |
collecting_kubeconfig | complete | completed | — |
* (any state) | fail | failed | — |
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"
}
}