REG.RU Cloud
Status: available · package wg-flow-plugin-regcloud 0.1.1 · provider regcloud · category cloud.
The plugin calls the CloudVPS API (https://api.cloudvps.reg.ru/v1) and sends cloud.reg.ru virtual machines into inventory. You need an API token from the Cloud panel (Settings → API token). The token stays in the agent YAML.
This is not REG.API2 and not the REG.RU plugin (cabinet login/password, domains, DNS, hosting). Here the auth is a separate Cloud Bearer token.
The plugin only sends GET requests: reglets, additional IPs, and private networks. It does not create or delete servers, reset passwords, or read billing.
SSH keys, distribution images, snapshots, and account balance are not collected in 0.1.0.
Install
The agent must be connected to the API.
docker compose exec agent wg-flow-agent plugin install regcloud
# or
wg-flow-agent plugin install regcloudThen the local UI → Connections → regcloud, or YAML.
What lands in inventory
| CloudVPS object | resource_type | Notes |
|---|---|---|
| Reglet (VM) | server | provider_resource_id = server:{id}. active → active, off / suspended → stopped, new → pending. Archived (archive / archived_at) are skipped. If the list has no plan or disk_usage, the plugin reads the server card. Public IPv4 → metadata.primary_ipv4; API memory is MB → metadata.mem_gb; disk_usage → metadata.disk_usage_gb; plan size.name → plan_name |
| Additional IP | network | ip:{id}, metadata.product = additional_ip. Server link → metadata.server_id. Price when billing detalization has it |
| Private network (VPC) | network | network:{resource_id}, metadata.product = private_network |
The server’s primary IP is already on the server row; /ips is additional addresses only.
Price
The charged price comes from GET /balance_data: detalization.price_month → metadata.billing_amount, billing_currency=RUB, billing_period=monthly, hourly price → metadata.price_per_hour. Child services (backup) go to metadata.linked_services and are not added into the server amount.
Without detalization, the plan price on the server card is used: size.price_month / size.price (server info). Zero is omitted. A failed /balance_data does not fail the source.
You can turn collection slices off independently. A disabled slice is missing from the next successful sync, and inventory marks those rows inactive. An API error fails the whole source: a partial list is not sent.
Multiple Cloud accounts → multiple sources with different tokens. provider_account is your label.
YAML
plugins:
regcloud:
enabled: true
sources:
- id: cloud
provider_account: "regcloud-main"
sync_interval_seconds: 300
url: "https://api.cloudvps.reg.ru/v1"
token: "…"
collect_servers: true
collect_additional_ips: true
collect_networks: trueSource fields
| Field | Required | Description |
|---|---|---|
id | yes | Log key (regcloud/cloud) |
provider_account | yes | Account label in inventory |
url | no | Default https://api.cloudvps.reg.ru/v1 |
token | yes | Cloud API token; masked in the UI |
collect_servers / collect_additional_ips / collect_networks | no | Default true |
sync_interval_seconds | no | Minimum 300 |
Check
wg-flow-agent status
wg-flow-agent dry-runJSON uses provider: regcloud. Health calls GET /reglets. The token is not written to inventory.
Common errors
| Symptom | What to check |
|---|---|
| 401 / 403 | Token from the cloud.reg.ru panel, not the REG.API2 password |
| Empty server list | collect_servers is on; Cloud has non-archived VMs |
| Duplicates with the REG.RU plugin | different provider (regru vs regcloud) — expected; merge in the console |