Ask for a VM. The rules answer.
Create a new virtual machine
Set the VM size within the caps configured for this template.
- Template allowed in this project: passed3 templates allowed · windows-server-2025
- Size between the template minimum and the project's cap: passed2–16 vCPU · 4–64 GB · 60–250 GB
- Fits the project quota: passed58/64 vCPU · 208/256 GB · 1770/2000 GB
- Name follows web-prod-<2100–2199>: passedprefix and number match the template's rule
- VMID 2104 from the name: passedfree on the cluster, not recently freed
VMID 2104
A simulation in your browser — nothing is created.
Teams pick what their project allows — every rule is checked before anything exists.
Try a name, or drag a size past the quota.
Admins decide once. The dialog follows.
Fix a size or a network on the template, and that step disappears from the dialog.
Rules applied — the create-VM dialog auto-fills and locks these for non-admins.
Name is prefix + number within the range. Forced for users; admins may override but stay within the range.
e.g. ci-runner-500 … up to ci-runner-599
Leave on “project default” to use the project-wide VM storage.
What new VMs from this template go through (Deployments page). Built-in = clone, boot, backup job, hostname, domain join, local admins, verify, HA.
After clone, the VM is added to the backup job whose comment starts with this prefix and that targets the VM's node (one job per PVE). Leave blank to skip.
Create a new virtual machine
This template enforces a naming scheme — the name is assigned automatically.
Range: ci-runner-500 – ci-runner-599
One click. Eight steps. Three places.
Nobody picks a node. The cluster does.
The least-loaded enabled, online node wins — CPU counts 60 %, memory 40 %.
Hosts
| Host | Type | Status | Capacity | CPU | Memory | Version | In project |
|---|---|---|---|---|---|---|---|
| pve-01 | pve | 64c · 512 GB | 62% | 71% | 9.0.6 | enabled | |
| pve-02 | pve | 64c · 512 GB | 38% | 55% | 9.0.6 | enabled | |
| pve-03 | pve | 64c · 512 GB | 24% | 33% | 9.0.6 | enabled | |
| pve-04 | pve | 32c · 256 GB | 9% | 18% | 9.0.6 | disabled |
pve-04 is not enabled for this project.
A no, before anything exists.
Each refusal, word for word, where it appears.
- 01Over the quotaREST APIPOST /api/v1/projects/web-platform/vms400 Bad Request
{ "error": "exceeds project vCPU quota (68 would be used of 64)" } - 02Name off the ruleREST APIPOST /api/v1/projects/web-platform/vms400 Bad Request
{ "error": "name must match the template's provisioning rule: \"web-prod-<n>\" with n between 2100 and 2199" } - 03VMID takenNew VM dialogCan’t use this nameVMID 2101 from the name "web-prod-2101" is already in use by "web-prod-2101" on the cluster
- 04VMID recently freedNew VM dialogCan’t use this nameVMID 2103 from the name "web-prod-2103" was freed recently and is blocked from reuse (VMID blacklist)
- 05Template not allowedREST APIPOST /api/v1/projects/web-platform/vms403 Forbidden
{ "error": "template 'pve-a:9003' is not allowed for this project" } - 06Range used upNew VM dialogCan’t use this nameVMID 2200 from the name "web-prod-2200" is outside the template's range 2100–2199
- 07VMID taken sinceat clone time
Bring one template, one range, one quota.
In a demo we set them up on your own templates and send the first request through.