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 nodeinsecure_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@pvepassword(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 ofstop-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 readmax_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(porturl, receives credentials): the Proxmox VE API, sent its token or password with every call