Skip to content

Virtual

The Virtual Aether models virtualisation alongside the physical estate — the clusters that pool compute, the virtual machines that run on them, and the interfaces those VMs present to the network. Where Infrastructure tracks the metal, Virtual tracks what runs on it.

The Clusters list with type, group, and VM countpublic/screenshots/virtual-clusters.png
  • Cluster Types and Cluster Groups classify and group clusters before the cluster records exist — type is what kind (e.g. VMware vSphere, Proxmox, Hyper-V), group is which rollup (e.g. by site or environment).
  • Clusters reference a type and an optional group, and are where compute is pooled.
  • Virtual Machines are hosted on a cluster; VM Interfaces are the virtual NICs on a VM — the bridge back to the Network Aether.

Classification for clusters — the virtualisation platform or technology a cluster runs on (e.g. VMware vSphere, Proxmox, Hyper-V). Create types before the clusters that reference them.

Fields

FieldTypeNotes
namestring · requiredDisplay name.
slugstringURL-safe identifier, unique. Auto-derived from name when omitted.
descriptionstringFree text.

APIGET/POST /api/cluster-types, GET/PATCH/DELETE /api/cluster-types/{id}.

A grouping for clusters, typically by site, region, or environment, so related clusters roll up together.

Fields

FieldTypeNotes
namestring · requiredDisplay name.
slugstringURL-safe identifier, unique. Auto-derived from name when omitted.
descriptionstringFree text.

APIGET/POST /api/cluster-groups, GET/PATCH/DELETE /api/cluster-groups/{id}.

A pool of compute referencing a type and an optional group. Virtual machines are placed against a cluster, and a cluster may be pinned to a site.

Fields

FieldTypeNotes
namestring · requiredDisplay name.
typeIduuid → Cluster TypeCleared to null if the type is deleted.
groupIduuid → Cluster GroupOptional rollup. Cleared to null if the group is deleted.
siteIduuid → SiteOptional home site (Infrastructure Aether). Cleared to null if the site is deleted.
statusstringDefaults to active. Free text — no fixed enum.
descriptionstringFree text.

APIGET/POST /api/clusters, GET/PATCH/DELETE /api/clusters/{id}.

The VM records — name, status, and allocated resources — each optionally hosted on a cluster and tagged with a platform (operating system).

Fields

FieldTypeNotes
namestring · requiredDisplay name.
clusterIduuid → ClusterHost cluster. Cleared to null if the cluster is deleted.
statusstringDefaults to active. Free text — no fixed enum.
vcpusintegerAllocated virtual CPUs.
memoryMbintegerAllocated memory, in MB.
diskGbintegerAllocated disk, in GB.
platformIduuid → PlatformOperating system / platform (Infrastructure Aether). Cleared to null if the platform is deleted.
descriptionstringFree text.

Notes

  • vcpus, memoryMb, and diskGb are independent integer attributes — there is no derived resource rollup against the host cluster today.
  • status is stored as free text (default active); it is not constrained to a fixed set of values.
The Virtual Machines list with host cluster and resourcespublic/screenshots/virtual-vms.png

Virtual network interfaces (NICs) on a VM. Deleting the parent VM cascades and removes its interfaces.

Fields

FieldTypeNotes
namestring · requiredInterface name, e.g. eth0.
vmIduuid → Virtual MachineParent VM. ON DELETE CASCADE — removed with the VM.
macAddressstringMAC address.
mtuintegerMaximum transmission unit.
enabledbooleanDefaults to true.
descriptionstringFree text.

Notes

  • The vmId foreign key cascades on delete — unlike other Virtual FKs, which null out — so an interface never outlives its VM.
  • enabled is set on the record directly; the CRUD form accepts name, vmId, macAddress, mtu, and description.
A virtual machine record showing host cluster and interfacespublic/screenshots/virtual-vm-detail.png
  • Group before you place. Cluster types and groups are the scaffolding — create them first so clusters, and the VMs on them, have something to reference.
  • Foreign keys to a type, group, site, cluster, or platform are all optional and null out when their target is deleted; only the VM → VM-interface link cascades.
  • Each module supports full CRUD — list, create, edit, and delete — via both the app UI and the REST API.

Resources are exposed under /api/cluster-types, /api/cluster-groups, /api/clusters, /api/virtual-machines, and /api/vm-interfaces — see the API reference. All require authentication and virtual Aether access. List endpoints accept page, pageSize, search (ILIKE across name and description), sort (name or createdAt), and order.