Skip to content
Subnomic

Proxmox VE

A Fleet integration

Provision Proxmox VMs with the agent already on.

Connect a Proxmox VE host with an API token. Subnomic lists its nodes, templates, VMs and containers, clones a template into a new VM and installs the Subnomic agent in it, so the machine arrives in your fleet with a terminal, metrics, guardrails and recording.

Connects with
a PVE API token
Installed on the node
nothing
Creates
QEMU VMs from templates
Plans
Team · Enterprise

Set it up

A token, a connection, a template.

01

Create an API token

In Proxmox, under Datacenter → Permissions → API Tokens. It needs VM.Allocate, VM.Clone, VM.Config, VM.PowerMgmt, VM.Monitor and Datastore.AllocateSpace. A token with privilege separation needs its own permission, for example the PVEVMAdmin role on /.

02

Connect it

In the console, under Cloud providers, enter the endpoint with its port and the token as user@realm!token-id=secret. Subnomic checks the token against /access/permissions and refuses one that holds no permissions at all.

03

Provision from a template

Pick a node and a VM template. The template is cloned, resized, given its address and user by cloud-init, and started; then the agent is installed through the QEMU guest agent and the machine appears under Servers.

What it does

What the integration does, and what it leaves alone.

Supported

  • List nodes, VM templates, and every VM and LXC container the token can see.
  • Create a VM by cloning a QEMU template: disk storage, bridge, DHCP or a static address, the cloud-init user and SSH keys.
  • Install the Subnomic agent in the new VM, and retry the install if it did not come up.
  • Start, stop, reboot and destroy the VMs Subnomic created. Destroy stops the VM first.
  • Once the agent is in, everything Fleet does: a terminal without an open port, metrics, patching, guardrails and recorded sessions.

Not supported

  • Controlling VMs Subnomic did not create. They are listed, not adopted; install the agent in one to bring it into the fleet.
  • Creating LXC containers. Only QEMU templates are cloned.
  • Snapshots, the Proxmox console (noVNC, SPICE) and Proxmox’s own graphs. Terminal and metrics come from the agent inside the VM.
  • Anything on the Proxmox host itself: no software is installed on the node.
  • Prices. Your hardware has none to show, so the console says so instead.

Governed

A new machine passes the same rules as a command.

Connecting an account, provisioning, and destroying are separate permissions (cloud.manage, cloud.provision, cloud.destroy), so a role can be allowed to create machines and not to remove them. Every provision, power action and destroy is written to the activity log.

  • Provisioning is checked against your guardrails first, by provider, node, template and bridge. If the check cannot run, nothing is created.
  • A rule that requires approval refuses the provision outright. To have a person say yes, put it behind a workflow’s approval step or a supervised Runa run.
  • A new VM counts against the plan’s servers, and provisioning stops at the limit.
  • The token is stored encrypted and never shown again; a self-signed certificate is accepted only if you tick the box.
guardrails · cloud
# pattern, matched against the provision statement      action
cloud\.provision provider=proxmox .*region=pve-2           deny
cloud\.provision provider=proxmox .*bridge=vmbr1           deny

With Runa, MCP and workflows

Agents can look. A person creates and destroys.

Runa

Reads accounts, templates and machines to answer questions. Provisioning and destroying a machine are offered only in a chat a person is having, never to an unattended caller.

MCP clients

Your own agents get the read tools (cloud_list_accounts, cloud_catalog, cloud_list_machines) and can retry an agent install. Provisioning and destroying are not on the MCP surface.

Workflows

A workflow can provision a machine as one of its steps. A workflow with that step needs its plan approved before it can run.

Questions

Before you connect a host.

Does the Proxmox API need to be reachable from the internet?

Yes. Subnomic calls the Proxmox API directly, not through the agent, and on the hosted service an endpoint that resolves to a private or loopback address is refused. Put the API behind a public address you control, with a trusted certificate if you can.

What must the template contain?

qemu-guest-agent, installed and enabled: Proxmox cannot pass a script over its API, so the agent is installed through the guest agent after the VM boots. For DHCP or a static address set by Subnomic, the template also needs a cloud-init drive.

The account shows no machines. Why?

A Proxmox token without the right privileges gets empty lists rather than errors. Check the token’s permissions, or recreate it with privilege separation off.

Which plan includes it?

Cloud providers, Proxmox and DigitalOcean, are part of Team and Enterprise. Provisioned VMs count against the plan’s servers: 25 on Team, 250 on Enterprise.

Your hardware, the same rules as the cloud.

Create a workspace, connect Proxmox on Team, and provision your first VM from a template.