Skip to content

VK Cloud ​

Статус: доступен · пакет wg-flow-plugin-vkcloud 0.1.0 · провайдер vkcloud · категория cloud.

Плагин берёт токен Keystone и читает каталог сервисов VK Cloud. В инвентарь попадают серверы (Nova), диски (Cinder), сети и floating IP (Neutron), группы безопасности и балансировщики (Octavia). Логин и пароль остаются в YAML агента.

Значения по умолчанию — Москва: https://infra.mail.ru/infra/identity/v3, регион RegionOne. Для Казахстана скопируйте OS_AUTH_URL и OS_REGION_NAME из openrc.sh (Project settings → API access → Download openrc). project_id — это OS_PROJECT_ID с той же вкладки, не id проекта в переключателе кабинета. Доступ к API должен быть включён.

Один source — один проект. Плагин только читает API.

Образы, снапшоты, файловые шары, бэкапы, Kubernetes, базы и object storage в 0.1.0 не эмитятся. Если в каталоге нет Octavia, балансировщики просто не приходят, source не падает.

Установка ​

Агент должен быть подключён к API.

bash
docker compose exec agent wg-flow-agent plugin install vkcloud
# или
wg-flow-agent plugin install vkcloud

Дальше — локальный UI → Connections → vkcloud или YAML.

Что попадает в инвентарь ​

Объект VK Cloudresource_typeЗаметки
Cloud serverserverprovider_resource_id = server:{id}. ACTIVE → active, SHUTOFF и пауза → stopped, переходные состояния → pending, ERROR → error. Регион — зона доступности. Floating IPv4 → metadata.primary_ipv4, серые адреса → metadata.private_ips
Diskstoragevolume:{id}. available и in-use → active, creating → pending. Размер в metadata.size_gb
Networknetworknetwork:{id}. CIDR подсетей в metadata.ip_ranges
Floating IPnetworkfloating-ip:{id}. metadata.product = floating_ip. DOWN → stopped
Security groupfirewallfirewall:{id}. Краткий список правил в metadata
Load balancerload_balancerlb:{id}. operating_status: OFFLINE → stopped, provisioning_status: ERROR → error

Отдельного типа ip в инвентаре нет, поэтому floating IP — это network.

Куски сбора можно выключить отдельно. Выключенный кусок не попадает в следующий успешный sync, и инвентарь помечает эти строки неактивными. Ошибка списка серверов, дисков, сетей или групп безопасности роняет весь source: частичный список не отправляется.

Несколько проектов — несколько sources. provider_account — ваша метка.

YAML ​

yaml
plugins:
  vkcloud:
    enabled: true
    sources:
      - id: msk
        provider_account: "vk-msk"
        sync_interval_seconds: 300
        auth_url: "https://infra.mail.ru/infra/identity/v3"
        region: "RegionOne"
        auth_type: password
        username: "user@example.com"
        password: "…"
        project_id: "…"
        user_domain_name: "users"
        collect_servers: true
        collect_volumes: true
        collect_networks: true
        collect_floating_ips: true
        collect_firewalls: true
        collect_load_balancers: true

Вместо пароля можно указать auth_type: application_credential, application_credential_id и application_credential_secret. Scope проекта тогда берётся из самой учётной записи.

Поля source ​

ПолеОбязательноОписание
idдаКлюч в логах (vkcloud/msk)
provider_accountдаМетка проекта в инвентаре
auth_urlнетПо умолчанию https://infra.mail.ru/infra/identity/v3
regionнетПо умолчанию RegionOne. Пустое значение — первый public endpoint каталога
auth_typeнетpassword (по умолчанию) или application_credential
username, password, project_idдля passwordПользователь проекта и OS_PROJECT_ID
user_domain_nameнетПо умолчанию users
application_credential_id, application_credential_secretдля application credentialСекрет показывается один раз при создании
collect_*нетПо умолчанию true
sync_interval_secondsнетМинимум 300

Проверка ​

bash
wg-flow-agent status
wg-flow-agent dry-run

В JSON provider: vkcloud. Health получает токен и вызывает GET {nova}/servers/detail?limit=1. Пароль и секрет в инвентарь не пишутся.

Частые ошибки ​

СимптомЧто проверить
401 / 403Логин, пароль и OS_PROJECT_ID с вкладки API access. Доступ к API включён
Compute endpoint not foundregion совпадает с OS_REGION_NAME. Для Казахстана другой auth_url
Пустой список серверовcollect_servers включён; в проекте есть серверы
Диски пропали после synccollect_volumes выключили; инвентарь гасит пропущенные строки
Нет балансировщиковВ каталоге проекта нет Octavia — это не ошибка source
Дубли с другим плагиномразный provider — это нормально; слияние в кабинете