Легковесный оркестратор виртуальных машин с HTTP API и декларативными YAML-конфигурациями
VirtForge — это инструмент для управления виртуальными машинами через API и конфигурации в стиле Infrastructure as Code.
Он занимает пространство между простым virt-manager, который удобен для ручной работы, и тяжёлыми платформами вроде Proxmox или OpenStack, которые требуют отдельной экосистемы, базы данных, веб-интерфейса и заметной операционной нагрузки.
Идея VirtForge проще: описать виртуальные машины, сети и хранилища в YAML, отправить конфигурацию агенту, а агент создаст нужное состояние через libvirt.
Что делает VirtForge
VirtForge позволяет описывать инфраструктуру виртуальных машин как код: диски, сети, ресурсы, образы, cloud-init, Ignition, снапшоты и параметры запуска хранятся в обычных YAML-файлах.
CLI отправляет эти описания на агент, установленный на хосте виртуализации. Агент предоставляет HTTP/HTTPS API, подключается к libvirt и управляет виртуальными машинами через KVM/QEMU на Linux или HVF/QEMU на macOS.
Такой подход позволяет не держать всю логику в ручных командах, скриптах или веб-интерфейсе. Конфигурацию можно хранить в Git, ревьюить, изменять, экспортировать обратно из существующих ВМ и повторно применять.
Зачем это нужно
Во многих небольших инфраструктурах OpenStack избыточен, Proxmox слишком привязан к собственному веб-интерфейсу и модели управления, а ручная работа через virsh или virt-manager плохо масштабируется и плохо воспроизводится.
VirtForge решает более узкую задачу: дать простой API-first и CLI-first слой управления виртуальными машинами поверх libvirt.
Он не пытается стать облачной платформой общего назначения. Его задача — сделать управление ВМ предсказуемым, автоматизируемым и удобным для инженера, который мыслит конфигурациями, API и Git, а не кликами в панели управления.
Архитектура
Проект состоит из двух основных частей.
VirtForge Agent работает на хосте виртуализации. Он подключается к libvirt, управляет виртуальными машинами, сетями, пулами хранения, образами и снапшотами, а наружу предоставляет JSON API.
VirtForge CLI работает на любой операционной системе и обращается к агенту по HTTP или HTTPS. Через CLI можно деплоить ВМ из YAML, получать список машин, запускать и останавливать их, экспортировать конфигурации, управлять снапшотами и использовать JSON-вывод для автоматизации.
Архитектурно VirtForge остаётся тонким control-plane над libvirt. Он не заменяет гипервизор, не хранит сложное состояние в собственной базе данных и не навязывает отдельную платформу. Основная работа остаётся за KVM, QEMU, HVF и libvirt.
Infrastructure as Code для виртуальных машин
Ключевая идея VirtForge — полный жизненный цикл ВМ через декларативные файлы.
В одном YAML можно описать одну машину, группу машин или сразу несколько сущностей: пулы хранения, сети и виртуальные машины. Multi-document YAML позволяет развернуть инфраструктуру в правильном порядке и удалить её в обратном порядке.
Это полезно для тестовых стендов, домашних лабораторий, CI/CD, небольших production-нагрузок и воспроизводимых dev-окружений. Вместо набора ручных действий появляется понятный цикл: описать, применить, проверить, экспортировать, изменить, применить снова.
Безопасность и эксплуатация
VirtForge рассчитан не только на локальные эксперименты, но и на эксплуатацию на удалённых хостах.
Агент поддерживает HTTPS, mTLS и bearer-token аутентификацию. Это позволяет использовать его не как локальную игрушку, а как управляемый API-сервис, доступ к которому можно ограничить и встроить в нормальную инфраструктурную модель безопасности.
Для наблюдаемости предусмотрены health endpoints и метрики Prometheus. Можно отслеживать состояние libvirt, количество ВМ, ошибки деплоя, задержки API и другие эксплуатационные показатели.
Для кого предназначен
VirtForge подходит DevOps- и SRE-инженерам, системным администраторам, разработчикам и владельцам домашних лабораторий, которым нужно управлять виртуальными машинами проще, чем через OpenStack, но системнее, чем через ручные команды.
Это хороший инструмент для небольших KVM-хостов, тестовых окружений, CI/CD-пайплайнов, edge-узлов, локальных стендов и инфраструктурных экспериментов.
Он не предназначен для замены Kubernetes, публичных облаков или больших enterprise-платформ виртуализации. Если нужна полноценная мультитенантная облачная платформа, стоит смотреть в сторону OpenStack. Если нужен готовый веб-интерфейс с кластеризацией, ZFS и Ceph, лучше подойдёт Proxmox.
VirtForge нужен там, где хочется оставить виртуализацию простой, но сделать её управляемой как код.
Текущий статус
Проект поддерживает создание, запуск, остановку и удаление виртуальных машин, декларативный деплой из YAML, управление сетями и пулами хранения, работу с образами, cloud-init и Ignition, снапшоты, TLS/mTLS, токен-аутентификацию, CLI-конфигурацию, Prometheus-метрики и health checks.
Планируемое развитие включает живую миграцию между хостами и готовые Grafana-дашборды для визуализации метрик.
Главная идея
VirtForge — это не попытка написать новый OpenStack.
Это попытка сделать маленький, понятный и проверяемый слой управления виртуализацией: без базы данных, без тяжёлого веб-интерфейса, без лишней платформенной магии.
Виртуальные машины остаются обычными ВМ libvirt. Конфигурации остаются обычными YAML-файлами. Управление остаётся доступным через CLI и HTTP API.
Именно в этом смысл проекта: дать инженеру простой способ управлять виртуализацией как кодом, не превращая небольшой сервер с KVM в отдельное облако со всей его сложностью.