Machines

Platform-admin pages for the virtual machines the platform provisions onto its own hypervisors — the layer under a Docker context. A machine is a record in its own right: it can serve a context, or be a plain VM serving nothing, and both are ordinary states.

Everything here is the operator-visible half of the provisioning plan; the flow behind it is §05 there.

The list

Admin → Machines. Every machine the platform has asked a hypervisor for, newest first, with its state, size, disk, island address and the context it serves (or ).

The machines list: one serving, one booting, one failed, one running with no context

Creating one

New machine walks five steps on the same wizard the organization and application forms use. Submitting is a handoff, not a completion: the machine lands as requested and its page shows it come up.

The button only appears once a hypervisor is answering its probe — step 1 asks which one, and a wizard whose first question has no answers can only dead-end. With none registered the page points at New hypervisor; with all of them quiet it points at Hypervisors, where you can re-check one.

The wizard with nowhere to put a machine

The whole wizard, walked end to end

Step Asks Worth knowing
1 · Hypervisor Which registered Proxmox endpoint Only ones a probe has answered from are offered
2 · Size S, M or L Chosen, not derived from any role. The cards are Derek, Doreen and Norman — the catalogue's own cast
3 · Storage How many 32 GB blocks Its own step because it is the irreversible one: blocks only ever grow
4 · Purpose New Docker context, or just a machine "No context" is a first-class answer, plus the machine's name — also its hostname
5 · Review Confirm The address, vmid and template are the control plane's to allocate; they appear on the machine's page as the flow claims them

Step 2: the size cards

Step 5: review, before the handoff

If the chosen hypervisor has no template yet, the form says exactly what to run (app:proxmox:template <name>) rather than failing later.

Watching it come up

The machine's page is the progress display — the same row the provisioning worker writes, polled while the flow runs: requested → cloning → configuring → starting → booting, ending in running when the guest agent answers. A machine that serves a context later becomes serving when the reconciler observes the node — the swarm's word, not the machine's.

A machine mid-boot

Underneath the flow, a Live log panel follows the hypervisor's own task output as it happens — the same account the settled Hypervisor tasks panel gives once the machine stops moving, but while it is still running. It is one connection, opened once and left open, not the page's own refresh: the two-second poll never touches the hypervisor, only the row a browser can read in a moment. State changes appear inline as ── configuring ──-style markers between the lines they separate.

A finished machine stops polling and shows its record — address, sizing, the template it was cloned from, and its context's endpoint:

A running machine serving a context

A failure keeps the task's own words, verbatim:

A failed machine, with the hypervisor's error

When it fails

That red box is the verdict — usually one line of Proxmox's exitstatus. The Hypervisor tasks panel underneath it is the account: every task the node ran for this machine's vmid, newest first, green for OK and red for anything else.

The Hypervisor tasks panel: every task the node ran for this vmid

Each task links to its own log — where the reason lives, as opposed to the verdict:

The clone task's log, as the hypervisor stored it

The panel is only fetched once the machine has settled. While the flow is still running the page polls every two seconds, and asking the hypervisor on every refresh would stall the one page that has to stay responsive; it says so rather than showing an empty box. A hypervisor that will not answer says that too, instead of breaking the page.

Reprovision

Reprovision runs the flow again from the top. It appears only on a failed machine — a running one has nothing to retry, and a machine mid-flow already has a worker on it.

Reprovisioned: the flow starts again, on the address it already held

Three things it does that are worth knowing:

  • It clears the failed attempt off the hypervisor first. A failure past cloning leaves a real VM at that vmid; the retry stops it, destroys it and drops the previous seed disc before cloning again. Otherwise every retry would fail on "that vmid is taken" and tell you nothing about the original problem.
  • It keeps the island address. The machine already holds one, and a retry has no reason to burn another out of the pool.
  • It will not destroy a VM it cannot prove is ours. Proxmox hands out vmids without reserving them, so a machine that failed a while ago may find its number belongs to something else by now. The name has to match; when it does not, the machine stays failed and says whose VM is sitting there.

← All guide pages