Skip to content

proxmox

Proxmox VE: an infrastructure controller type, version 1. A controller of this type is written under controllers.infrastructure with type: proxmox.

Its connectivity test identifies the system it reaches by cluster.name, so that a second controller for the same system is warned of.

Connection

In the controller’s connection:

  • base_url (string, required): Proxmox VE API root on one node, e.g. https://pve1.example.com:8006. A node fence is never sent through this node
  • insecure_skip_verify (bool): accept a self-signed certificate

Auth methods

The controller’s auth.method is one of these. A field marked secret comes only from the secret auth.credentials_ref names; the others are set in auth.config, or in that secret.

api_key

An API token.

  • token_id (string, required): <user>@<realm>!<token-name>
  • token_secret (string, required, secret)

basic

A user’s password; qfence logs in for a ticket and keeps it in memory. An account with a second factor cannot be used.

  • username (string, required): <user>@<realm>, e.g. qfence@pve
  • password (string, required, secret)

Capabilities

The controller enables each it uses in its capabilities list.

vm.stop

Hard-stop the VM, named by its VM id; start it again on unfence.

Category: actuator; bound as fence; fencing level compute; resource vm.

Per binding, in its params:

  • node (string, required): the node the VM runs on

Validation checks: priv.VM.PowerMgmt.

node.fence

Hard-stop every guest on the node and, in mode shutdown, then shut the node down; unfence starts its onboot guests. Never sent through the node it fences.

Category: actuator; bound as fence; fencing level compute; resource node.

Advertised once its setup is done: config, validation.

Settings, in its entry’s config:

  • mode (string, required, one of stop-guests, shutdown): stop-guests stops every guest and leaves the node up; shutdown also shuts the node down, after which only another path (a BMC) can prove it off

Validation checks: priv.VM.PowerMgmt, priv.Sys.PowerMgmt, endpoint-not-on-node.

vm.link-down

Set the VM NIC’s link down (link_down=1), <vmid>/net<N>; up again on unfence. The VM keeps running.

Category: actuator; bound as fence or shield; fencing level network; resource vm-nic.

Validation checks: priv.VM.Config.Network.

replication.lag

The replication job, <vmid>-<n>, is healthy and its last sync within bound.

Category: observation; bound as readiness; resource replication-job.

Per binding, in its params:

  • node (string, required): the node whose replication status is read
  • max_replication_lag (duration, required): the most lag that still allows promotion, e.g. 300s

Validation checks: priv.VM.Audit.

probe.agent-ping

The VM’s QEMU guest agent answers a ping.

Category: observation; bound as readiness or health; resource vm.

Advertised once its setup is done: validation.

Validation checks: guest-agent.running, priv.guest-agent.

probe.service

A command the VM’s guest agent runs in it exits 0.

Category: observation; bound as readiness or health; resource vm.

Advertised once its setup is done: validation.

Per binding, in its params:

  • command (list of strings, required): the program and its arguments, e.g. systemctl, is-active, postgresql

Validation checks: guest-agent.running, priv.guest-agent.exec.

vms.list

The cluster’s guests, by VM id.

Category: discovery; resource vm.

Validation checks: priv.VM.Audit.

vm.nics

The QEMU guests’ NICs, as <vmid>/net<N>.

Category: discovery; resource vm-nic.

Validation checks: priv.VM.Audit.

replication-jobs.list

The storage replication jobs, by job id.

Category: discovery; resource replication-job.

Validation checks: priv.VM.Audit.

nodes.list

The cluster’s nodes.

Category: discovery; resource node.

Validation checks: priv.Sys.Audit.

Addresses

Every address the type contacts. A secret’s scope (-scope-host) is checked against each that receives credentials.

  • connection.base_url (port url, receives credentials): the Proxmox VE API, sent its token or password with every call