Kvindo™ Cloud Docs
A Virtual Machine (VM) is a cloud compute resource that provides isolated processing capacity with dedicated vCPUs and RAM. VMs run your workloads on shared physical hardware while remaining fully isolated from other tenants.
• Offer — the compute flavour (offerId) that fixes the vCPUs, RAM, and CPU share
• Boot disk — the VM boots from an attached Volume seeded with an OS image (osImageId)
• Subnet — the VPC subnet the VM's primary NIC lands in; the VM gets a private IP from its range
• Floating IP — optional public IPv4 address attached to the VM
• Security Group — firewall rules controlling inbound and outbound traffic
• SSH Key — public key injected into a Linux VM's authorized_keys at creation
• OS type — linux (SSH-key login) or windows (auto-generated Administrator password)
| UI Name | API / kc name | Terraform name | Optional | Format | Default | Is read only | Description |
|---|---|---|---|---|---|---|---|
| VPC Subnet | spec.vpcSubnetId |
spec.vpc_subnet_id |
Yes | ULID (nullable) — references a VPC Subnet | — | No | Subnet the VM's primary NIC lands in |
| Floating IP | spec.floatingIpId |
spec.floating_ip_id |
Yes | ULID (nullable) — references a Floating IP | — | No | Public IPv4 to associate with the VM |
| Offer | spec.offerId |
spec.offer_id |
Yes | string (≤32 chars) | — | No | Compute flavour — there is no server-side default, so pass one explicitly (e.g. g3-1c1-100 = 1 core / 1 GB / 100% CPU); see Console → Compute for options |
| Image | spec.imageId |
spec.image_id |
Yes | ULID (nullable) — references an Image | — | No | Restore the VM from a captured backup Image. Omit for a fresh VM — the OS comes from the boot Volume's osImageId |
| Image boot volume index | spec.imageBootVolumeDeviceIndex |
spec.image_boot_volume_device_index |
Yes | integer (nullable) | — | No | When restoring from an Image, which of its volumes becomes the boot disk |
| SSH Keys | spec.sshKeyIds |
spec.ssh_key_ids |
Yes | list of ULID — references SSH Keys | [] |
No | Public keys injected into the (Linux) VM |
| Security Groups | spec.securityGroupIds |
spec.security_group_ids |
Yes | list of ULID — references Security Groups | [] |
No | Firewall rules applied to the VM |
| Image Schedules | spec.imageScheduleIds |
spec.image_schedule_ids |
Yes | list of ULID — references Image Schedules | [] |
No | Automatic backup-image schedules attached to the VM |
| On/Off Schedules | spec.onOffScheduleIds |
spec.on_off_schedule_ids |
Yes | list of ULID — references VM On/Off Schedules | [] |
No | Schedules that power the VM on or off automatically |
| Command Schedules | spec.commandScheduleIds |
spec.command_schedule_ids |
Yes | list of ULID — references VM Command Schedules | [] |
No | Commands run inside the VM on a recurring schedule |
| OS Type | spec.osType |
spec.os_type |
Yes | string (nullable) | linux |
No | linux (SSH keys) or windows (auto-generated Administrator password) |
| VM State | spec.vmState |
spec.vm_state |
Yes | string (nullable) — running / stopped |
running |
No | Desired power state of the VM: running or stopped. Set it to stopped to power the VM off and back to running to start it again |
| Bootstrap command | spec.bootstrapCommand |
spec.bootstrap_command |
Yes | object (nullable) | — | No | Command run at first boot. The VM reports execution results back; see status.bootstrapCommand below |
| Command | spec.bootstrapCommand.command |
spec.bootstrap_command.command |
Yes | string | — | No | Command run at first boot |
| Private IPv4 | status.privateIpv4 |
status.private_ipv4 |
— | string (nullable) | — | Yes | Private IPv4 assigned from the subnet range |
| Public IPv4 | status.publicIpv4 |
status.public_ipv4 |
— | string (nullable) | — | Yes | Public IPv4 (when a Floating IP is attached) |
| Private IPv6 | status.privateIpv6 |
status.private_ipv6 |
— | string (nullable) | — | Yes | Private IPv6 of the VM. IPv6 is not yet implemented — reserved for future use |
| Public IPv6 | status.publicIpv6 |
status.public_ipv6 |
— | string (nullable) | — | Yes | Public IPv6 of the VM. IPv6 is not yet implemented — reserved for future use |
| Windows password | status.windowsAdministratorPassword |
status.windows_administrator_password |
— | string (nullable, sensitive) | — | Yes | Auto-generated Administrator password for Windows VMs |
| Bootstrap command result | status.bootstrapCommand |
status.bootstrap_command |
— | object (nullable) | — | Yes | Result of executing the bootstrap command; null if no bootstrap command is set on the VM |
| Return code | status.bootstrapCommand.returnCode |
status.bootstrap_command.return_code |
— | integer (nullable) | — | Yes | Exit code of the bootstrap command, reported back by the VM after it runs |
| Output | status.bootstrapCommand.output |
status.bootstrap_command.output |
— | string (nullable, ≤10000 chars) | — | Yes | Combined stdout+stderr of the bootstrap command; truncated in the middle if longer than 10000 characters |
| Duration | status.bootstrapCommand.durationMs |
status.bootstrap_command.duration_ms |
— | integer (nullable) | — | Yes | How long the bootstrap command took to run, in milliseconds |
Every VM is attached to a VPC subnet and receives a private IP from the subnet CIDR. To expose the VM to the internet, attach a Floating IP. To control traffic at the VM level attach a Security Group (a stateful firewall whose rules apply to all traffic in and out of the VM).
A VM boots from an attached Volume seeded with an OS image. Additional block storage can be attached as further Volumes via Volume Attachments. Volumes are independent of the VM lifetime and can be re-attached after the VM is deleted.
Capture a VM's disks into an Image for backup or cloning — on demand, or automatically with an Image Schedule. To restore, create a VM with its imageId set to a captured Image. (The base OS of a fresh VM comes from its boot Volume's osImageId, not from imageId.)
VMs are billed based on the selected offer (vCPU + RAM). The monthly price is shown on the VM overview card. Billing starts when the VM reaches the Reconcilled state and stops when it is deleted (pro-rated to the day). VM counts, vCPUs, and RAM are governed by organization Quotas.
If a VM is stuck in Reconcilling, check the hosting provider's event log. Common causes: image not found on the target provider, provider-level quota exceeded, or a network provisioning timeout.
• SSH unreachable — check that the Security Group allows inbound TCP 22 from your IP, and that the Floating IP is attached
• UnableToReconcile — the last change request failed; the error is shown in the Last Change Request panel
A VM with a public floating IP, an SSH key, and a boot volume seeded with an OS image. (Create the network first — see the Networking example.)
Terraform
Python SDK
kc CLI
Examples
More in this section