---
id: "virtual-machine"
type: "kind"
category: "compute"
url: "https://localhost:3000/catalogue/kinds/virtual-machine"
---

# Virtual machine

A leased guest machine running an OS image on provider infrastructure.

| | |
|---|---|
| Category | Compute |
| Properties | 8 |
| Components | 61 |
| Rules | 1 |

## Properties

| property | type | values | required | default |
|---|---|---|---|---|
| `diskEncryption` | boolean | — | no | — |
| `instances` | integer | — | no | — |
| `managed` | boolean | — | no | false |
| `memoryGib` | integer | — | no | — |
| `os` | enum | `linux`, `windows`, `aix`, `ibm-i` | no | "linux" |
| `publicIp` | boolean | — | no | — |
| `sizeVcpu` | integer | — | no | — |
| `zoneRedundant` | boolean | — | no | — |

## Rules for this kind · 1

### Stateful node without zone redundancy `stateful-node-without-zone-redundancy` (error)

- Page: https://localhost:3000/catalogue/rules/stateful-node-without-zone-redundancy.md
- Why: A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.
- Applies to: every node in category compute
- Message: Stateful node '{{node.id}}' lives in exactly one availability zone. A zone outage takes its state with it.

It fires when:

- all of these hold:
  - the node's `stateless` is false
  - the node sits inside exactly 1 availability-zone group
  - this does not hold:
    - the node sits inside at least one cell group

## Components · 61

### vendor-neutral

- [Generic virtual machine](https://localhost:3000/catalogue/components/virtual-machine.md) `virtual-machine` — the kind itself

### alibabacloud

- [Auto Scaling](https://localhost:3000/catalogue/components/alibaba-auto-scaling.md) `alibaba-auto-scaling` — 1 defaults
- [Elastic Compute Service](https://localhost:3000/catalogue/components/alibaba-ecs.md) `alibaba-ecs` — 2 defaults
- [Edge Node Service](https://localhost:3000/catalogue/components/alibaba-ens.md) `alibaba-ens` — 1 defaults
- [Simple Application Server](https://localhost:3000/catalogue/components/alibaba-simple-application-server.md) `alibaba-simple-application-server` — 1 defaults

### aws

- [Amazon EC2](https://localhost:3000/catalogue/components/aws-ec2.md) `aws-ec2` — 3 defaults
- [Amazon EC2 Auto Scaling](https://localhost:3000/catalogue/components/aws-ec2-auto-scaling.md) `aws-ec2-auto-scaling` — 2 defaults
- [Amazon EC2 Dedicated Hosts](https://localhost:3000/catalogue/components/aws-ec2-dedicated-host.md) `aws-ec2-dedicated-host` — 2 defaults
- [Amazon Elastic VMware Service](https://localhost:3000/catalogue/components/aws-evs.md) `aws-evs` — 1 defaults
- [Amazon Lightsail](https://localhost:3000/catalogue/components/aws-lightsail.md) `aws-lightsail` — 3 defaults
- [AWS Nitro Enclaves](https://localhost:3000/catalogue/components/aws-nitro-enclave.md) `aws-nitro-enclave` — 4 defaults

### azure

- [Azure BareMetal Infrastructure](https://localhost:3000/catalogue/components/azure-baremetal-infrastructure.md) `azure-baremetal-infrastructure` — 1 defaults
- [Azure Compute Fleet](https://localhost:3000/catalogue/components/azure-compute-fleet.md) `azure-compute-fleet` — 2 defaults
- [Azure Dedicated Host](https://localhost:3000/catalogue/components/azure-dedicated-host.md) `azure-dedicated-host` — 2 defaults
- [Azure Data Science Virtual Machine](https://localhost:3000/catalogue/components/azure-dsvm.md) `azure-dsvm` — 3 defaults
- [Nutanix Cloud Clusters on Azure](https://localhost:3000/catalogue/components/azure-nutanix-cloud-clusters.md) `azure-nutanix-cloud-clusters` — 1 defaults
- [Azure Virtual Machines](https://localhost:3000/catalogue/components/azure-virtual-machine.md) `azure-virtual-machine` — 3 defaults
- [Azure Virtual Machine Scale Sets](https://localhost:3000/catalogue/components/azure-vm-scale-set.md) `azure-vm-scale-set` — 3 defaults
- [Azure VMware Solution](https://localhost:3000/catalogue/components/azure-vmware-solution.md) `azure-vmware-solution` — 4 defaults

### default

- [Crusoe Cloud VM](https://localhost:3000/catalogue/components/crusoe.md) `crusoe` — 3 defaults
- [Firecracker](https://localhost:3000/catalogue/components/firecracker.md) `firecracker` — 2 defaults
- [Microsoft Hyper-V](https://localhost:3000/catalogue/components/hyper-v.md) `hyper-v` — 1 defaults
- [KubeVirt](https://localhost:3000/catalogue/components/kubevirt.md) `kubevirt` — 1 defaults
- [Lambda Cloud instance](https://localhost:3000/catalogue/components/lambda-labs.md) `lambda-labs` — 4 defaults
- [KVM with libvirt](https://localhost:3000/catalogue/components/libvirt.md) `libvirt` — 1 defaults
- [Nebius AI Cloud VM](https://localhost:3000/catalogue/components/nebius.md) `nebius` — 3 defaults
- [Nutanix AHV](https://localhost:3000/catalogue/components/nutanix-ahv.md) `nutanix-ahv` — 2 defaults
- [OpenStack Nova](https://localhost:3000/catalogue/components/openstack-nova.md) `openstack-nova` — 1 defaults
- [oVirt](https://localhost:3000/catalogue/components/ovirt.md) `ovirt` — 1 defaults
- [Proxmox VE](https://localhost:3000/catalogue/components/proxmox.md) `proxmox` — 1 defaults
- [Runpod Pod](https://localhost:3000/catalogue/components/runpod.md) `runpod` — 3 defaults
- [Vast.ai instance](https://localhost:3000/catalogue/components/vast-ai.md) `vast-ai` — 3 defaults
- [VMware vSphere](https://localhost:3000/catalogue/components/vsphere.md) `vsphere` — 2 defaults
- [XCP-ng](https://localhost:3000/catalogue/components/xcp-ng.md) `xcp-ng` — 1 defaults
- [XenServer](https://localhost:3000/catalogue/components/xenserver.md) `xenserver` — 1 defaults

### digitalocean

- [DigitalOcean Bare Metal GPUs](https://localhost:3000/catalogue/components/digitalocean-bare-metal-gpu.md) `digitalocean-bare-metal-gpu` — 3 defaults
- [Droplets](https://localhost:3000/catalogue/components/digitalocean-droplet.md) `digitalocean-droplet` — 4 defaults
- [Droplet Autoscale Pool](https://localhost:3000/catalogue/components/digitalocean-droplet-autoscale.md) `digitalocean-droplet-autoscale` — 3 defaults

### gcp

- [Bare Metal Solution](https://localhost:3000/catalogue/components/google-bare-metal-solution.md) `google-bare-metal-solution` — 4 defaults
- [Cloud TPU](https://localhost:3000/catalogue/components/google-cloud-tpu.md) `google-cloud-tpu` — 4 defaults
- [Compute Engine](https://localhost:3000/catalogue/components/google-compute-engine.md) `google-compute-engine` — 3 defaults
- [Confidential Space](https://localhost:3000/catalogue/components/google-confidential-space.md) `google-confidential-space` — 4 defaults
- [Managed instance group](https://localhost:3000/catalogue/components/google-managed-instance-group.md) `google-managed-instance-group` — 3 defaults
- [Sole-tenant node group](https://localhost:3000/catalogue/components/google-sole-tenant-node.md) `google-sole-tenant-node` — 3 defaults
- [Google Cloud VMware Engine](https://localhost:3000/catalogue/components/google-vmware-engine.md) `google-vmware-engine` — 2 defaults

### ibm

- [IBM Cloud Bare Metal Servers](https://localhost:3000/catalogue/components/ibm-bare-metal-server.md) `ibm-bare-metal-server` — 2 defaults
- [Auto Scale for VPC](https://localhost:3000/catalogue/components/ibm-instance-group.md) `ibm-instance-group` — 1 defaults
- [IBM Power Virtual Server](https://localhost:3000/catalogue/components/ibm-power-virtual-server.md) `ibm-power-virtual-server` — 2 defaults
- [IBM Cloud Virtual Servers for VPC](https://localhost:3000/catalogue/components/ibm-virtual-server.md) `ibm-virtual-server` — 4 defaults
- [Virtual Servers for Classic](https://localhost:3000/catalogue/components/ibm-virtual-server-classic.md) `ibm-virtual-server-classic` — 0 defaults
- [IBM Cloud for VMware Solutions](https://localhost:3000/catalogue/components/ibm-vmware-solutions.md) `ibm-vmware-solutions` — 0 defaults

### oci

- [OCI Cluster Network](https://localhost:3000/catalogue/components/oci-cluster-network.md) `oci-cluster-network` — 3 defaults
- [OCI Compute](https://localhost:3000/catalogue/components/oci-compute.md) `oci-compute` — 4 defaults
- [OCI Autoscaling](https://localhost:3000/catalogue/components/oci-compute-autoscaling.md) `oci-compute-autoscaling` — 1 defaults
- [OCI Compute Bare Metal](https://localhost:3000/catalogue/components/oci-compute-bare-metal.md) `oci-compute-bare-metal` — 4 defaults
- [OCI Dedicated Virtual Machine Host](https://localhost:3000/catalogue/components/oci-dedicated-vm-host.md) `oci-dedicated-vm-host` — 3 defaults
- [OCI GPU Compute](https://localhost:3000/catalogue/components/oci-gpu-instance.md) `oci-gpu-instance` — 4 defaults
- [OCI Instance Pool](https://localhost:3000/catalogue/components/oci-instance-pool.md) `oci-instance-pool` — 2 defaults
- [Oracle Cloud VMware Solution](https://localhost:3000/catalogue/components/oci-vmware-solution.md) `oci-vmware-solution` — 2 defaults

### openstack

- [OpenStack Ironic](https://localhost:3000/catalogue/components/openstack-ironic.md) `openstack-ironic` — 1 defaults

### outscale

- [OUTSCALE VM](https://localhost:3000/catalogue/components/outscale-vm.md) `outscale-vm` — 3 defaults

## Source (`kind` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../schema/kind.schema.json
# A machine you lease and boot from an image, as opposed to app-server which is the process running on it. publicIp, zoneRedundant and diskEncryption carry no default so exposure and resilience rules can catch a machine that never declared them.
schemaVersion: "1"
type: "kind"
id: "virtual-machine"
category: "compute"
properties:
  os:
    type: "enum"
    values: ["linux", "windows", "aix", "ibm-i"]
    default: "linux"
  sizeVcpu:
    type: "integer"
  memoryGib:
    type: "integer"
  publicIp:
    type: "boolean"
  zoneRedundant:
    type: "boolean"
  diskEncryption:
    type: "boolean"
  instances:
    type: "integer"
  managed:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/kinds/virtual-machine
