
Proxmox VE Trigger
CertifiedTrigger on Proxmox VE QEMU VM status changes
Proxmox VE Trigger
Trigger on Proxmox VE QEMU VM status changes
Polls /nodes/{node}/qemu on the configured interval and fires when any VM's status matches the configured targetStatus (e.g. running, stopped). Returns the list of matching VMs. Uses stateful change detection: a VM that remains in the target status across consecutive polls will only trigger once, not on every poll. It will trigger again if the VM leaves and re-enters the target status.
type: io.kestra.plugin.proxmox.vm.TriggerExamples
Fire when any VM enters stopped state
id: vm_stopped_trigger
namespace: company.team
triggers:
- id: watch
type: io.kestra.plugin.proxmox.vm.Trigger
interval: PT1M
connection:
host: "{{ secret('PROXMOX_HOST') }}"
username: "{{ secret('PROXMOX_USERNAME') }}"
password: "{{ secret('PROXMOX_PASSWORD') }}"
node: pve
targetStatus: stopped
tasks:
- id: log
type: io.kestra.plugin.core.log.Log
message: "VMs stopped: {{ trigger.vms }}"
Properties
connection *RequiredNon-dynamic
Proxmox connection
Connection settings for the Proxmox VE API. Authenticate with either a username/password pair (ticket-based) or a tokenId/tokenSecret pair (API token).
Proxmox host
Hostname or IP address of the Proxmox VE node (no scheme, no port).
Proxmox node name
Name of the cluster node that scopes all API calls (e.g. pve, node1).
Password
Password for ticket-based authentication.
8006API port
Defaults to 8006.
API token ID
Full token identifier in the form user@realm!tokenname (e.g. root@pam!mytoken). Use together with tokenSecret.
API token secret
The UUID secret associated with the token ID.
Username
PAM or PVE user in the form user@realm (e.g. root@pam). Required when using ticket-based auth.
trueVerify SSL
Validate the server TLS certificate. Defaults to true; set to false only for trusted networks with self-signed Proxmox certificates.
targetStatus *Requiredstring
Target VM status
Status to match for triggering, e.g. running or stopped.
allowConcurrent Non-dynamicboolean
falseSpecifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.
interval Non-dynamicstring
PT1MdurationPolling interval
How often to poll for VM status changes. ISO 8601 duration, e.g. PT1M.
stopAfter Non-dynamicarray
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDList of execution states after which a trigger should be stopped (a.k.a. disabled).
when string
trueA condition that determines whether the trigger should run.
A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.
Outputs
vms array
VMs matching the configured status
io.kestra.plugin.proxmox.vm.Trigger-VmSnapshot
VM name
VM status
0VM ID