Skip to content

Resource Quotas & Affinity Rules

Two placement controls live in the Identity tab alongside tenants and users: hard vCPU/RAM ceilings (cluster- and tenant-level) and affinity/anti-affinity rules that steer where VMs land.

Resource Quotas

Three independent ceilings can each block a VM create with a 409 if exceeded — a create must pass all that apply:

  • Per-user quota — a user's own max_vcpus/max_ram (set when creating/editing the user).
  • License edition cap — the free-tier VM count baked into your license.
  • Cluster / tenant ceilings (this page) — operator-set hard limits on committed vCPU/RAM (the sum already allocated across existing VMs, not live load). A ceiling of 0 or blank means unlimited.

Cluster ceilingsOrganize Hosts into Datacenters & Clusters, edit the cluster, set Max vCPUs / Max RAM (GB).

Tenant ceilingsIdentity → Resource Quotas & Usage widget, edit a tenant's Max vCPUs, Max RAM (GB), and Max Nodes (the number of distinct compute nodes that tenant's VMs may spread across — landing on a node the tenant already occupies never counts against it, only spreading to a new one does).

The widget also shows current committed usage against each ceiling so you can see how much headroom is left before you hit it.

Affinity Rules

Identity → Affinity Rules — hard or soft affinity/anti-affinity for a named group of VMs/containers:

  1. + Add Rule — set the Group name (matches the free-text affinity_group tag you set on a VM or LXD container, e.g. via its right-click menu).
  2. Modesoft (best-effort — placement prefers to honor it but won't fail a deploy if it can't) or hard (placement refuses any host that would violate it).
  3. Kindaffinity (keep the group's members together on the same host) or anti (spread them across different hosts — the common case for HA pairs/replicas).
  4. Save.

A group name with no rule row here keeps the default soft/anti behavior — you only need a rule to make a group hard-enforced or to flip it to affinity (co-locate).

See also