Skip to content

Plugins

The agent image does not ship providers. The catalog is the same as the Marketplace tab in the local UI and in the WaveGrid console: the agent downloads a wheel with its tenant token, then you add a YAML section.

Installable today: Proxmox and Prometheus. Other cards are coming soon.

Available

PluginCategoryCollects
Proxmox VEVirtualizationNodes, VMs, LXC, storage
PrometheusMonitoringScrape targets as servers, DBs, load balancers, domains

Coming soon

The wheel is not published yet. In Marketplace Install stays disabled; the page describes what will ship.

PluginCategoryPlanned collect
Hetzner CloudCloudServers, volumes, LBs, floating IPs
CloudflareDNSZones and records
Amazon Web ServicesCloudCompute, DBs, load balancers, storage
DigitalOceanCloudDroplets, volumes, LBs
Google CloudCloudCompute, SQL, load balancers
Microsoft AzureCloudVMs, disks, LBs
KubernetesOrchestrationCluster nodes and workloads

Install

After the agent is connected and can reach the API:

bash
# Docker
docker compose exec agent wg-flow-agent plugin marketplace list
docker compose exec agent wg-flow-agent plugin install proxmox
docker compose exec agent wg-flow-agent plugin install prometheus
docker compose exec agent wg-flow-agent plugin list

# pip / host
wg-flow-agent plugin marketplace list
wg-flow-agent plugin install proxmox

Same from the local UI: MarketplaceInstall.

Wheels land in ~/.wg-flow-agent/plugins (in the container: /var/lib/wg-flow-agent/plugins, volume agent_data).

Update: wg-flow-agent plugin update proxmox. Remove: plugin uninstall.

Enable in YAML

After install, add plugins.<name>. Provider fields are on that plugin’s page. Minimal skeleton:

yaml
plugins:
  proxmox:
    enabled: true
    sources:
      - id: dc1
        provider_account: "proxmox-dc1"
        sync_interval_seconds: 300
        # API fields — see the plugin page

Multiple sources means multiple accounts of the same provider. Inventory distinguishes them by provider_account.

The local UI renders the form after install (schema from the marketplace).

Schedule

Each source has its own sync_interval_seconds (minimum 300). Sources that are due in the same tick are coalesced into one POST /sync/. If none are due, the scheduler still sends an empty heartbeat so the agent does not go offline.