Creating Labs
Infrastructure Options
The fields the CLI accepts and what the traced provisioner uses. It is not a provider quota or capacity guarantee.
VM Configuration
version: "3"
virtualmachines:
- name: "ubuntu-1"
image: "ubuntu2024"
machine_type: "medium"| Field | Type | Verified behaviour |
|---|---|---|
name | string | Used for VM-specific setup, check, solve, and cleanup script filenames. The validator does not require it to be non-empty. |
image | string | Passed to the VM Terraform variables. The validator contains no image allowlist, so this documentation does not claim a supported-image catalog. |
machine_type | string | Passed to the VM Terraform variables. The validator contains no size, vCPU, or RAM table. |
environment | map[string]string | Accepted in config.yml, but omitted by the traced Terraform-variable generation; do not rely on it for VM environment injection. |
AWS Accounts
version: "3"
aws_accounts:
- count: 1
inline_policy:
Version: "2012-10-17"
Statement:
- Effect: "Allow"
Action: "s3:ListAllMyBuckets"
Resource: "*"| Field | Type | Verified behaviour |
|---|---|---|
count | number | Use 1 per configured AWS entry. Checkout expands the total, but policy data maps to entries by position, so count greater than 1 leaves later accounts without that entry's policy configuration. |
policy | string | A named policy. Exactly one of policy and inline_policy is required for each AWS account entry. |
inline_policy.Version | string | Required when inline_policy is used. |
inline_policy.Statement[].Effect | string | Required and must be Allow or Deny. |
inline_policy.Statement[].Action, inline_policy.Statement[].Resource | any non-null YAML value | Both are required by this validator, which checks only that they are non-null. Use AWS-valid string or list values. Sid and Condition are optional accepted fields. |
provisioning_strategy, max_pool_accounts, fallback_to_dynamic | mixed | Accepted by the model but not used by the traced checkout or Terraform-variable generation path. |
GCP Projects
version: "3"
gcp_projects:
- count: 1
apis:
- "compute.googleapis.com"
iam_roles:
- "roles/editor"
access_type: "service_account"| Field | Type | Verified behaviour |
|---|---|---|
count | number | Use 1 per configured GCP entry. Checkout expands the total, but APIs and IAM roles map to entries by position, so count greater than 1 leaves later projects without that entry's configuration. |
apis | string[] | Accepted and passed to generated Terraform variables for the checked-out project. |
iam_roles | string[] | Accepted and passed to generated Terraform variables for the checked-out project. |
access_type | string | Accepted by the model, but omitted by the traced Terraform-variable generation. Do not infer a credential-delivery mechanism from it. |
provisioning_strategy | string | Accepted by the model, but not used by the traced checkout or Terraform-variable generation path. |
Azure Subscriptions
version: "3"
azure_subscriptions:
- count: 1
access_type: "service_principal"
rbac_role: "Contributor"| Field | Type | Verified behaviour |
|---|---|---|
count | number | Summed as entered; pool checkout occurs only when the total is greater than zero. No validator requires it or constrains its value. |
access_type, rbac_role, provisioning_strategy | string | Accepted by the model, but not emitted by the traced Azure Terraform-variable generation; no role or credential behaviour is promised here. |
Availability
UNVERIFIED: current AWS, GCP, and Azure pool capacity, provider availability, quotas, permitted regions, and the credentials visible to a running VM are live operational state. The source trace confirms only the static parsing and provisioning paths described above.
