Об этом проекте

Zyvor Fabric представляет собой self-hosted контрольную панель для частных облаков, построенную на обычных Linux-серверах с KVM. Она объединяет API, аутентификацию, сетевые функции, хранилище и мониторинг в одном демоне на Rust — zyvor-fabricd. Вместо реализации самого исполнения VM, проект позиционируется как слой оркестрации и UX над двумя сопутствующими проектами: FluxVM (движок VM, доступный через REST на 127.0.0.1:7788) и GuestKit (инструмент для автономного анализа и настройки дисков перед первой загрузкой). Интерфейсы и автоматизация Один и тот же демон обеспечивает работу четырех основных фронтендов: командной строки zyvorctl, веб-консоли, работающей вместе с API (порт по умолчанию 9095), оператора Kubernetes, который синхронизирует пользовательские ресурсы VirtualMachine с запущенным экземпляром fabricd, и провайдера Terraform. Также включены контент для Ansible и инструмент предварительной проверки «Fabric Doctor». Декларативные определения VM можно применять с помощью zyvorctl apply -f, а создание VM поддерживает опциональное разделение по тенантам. В README указано, что демон предоставляет более 480 REST-эндпоинтов и три канала WebSocket; проект состоит примерно из 48 Rust-крейтов и порядка 87 тысяч строк кода на Rust и TypeScript. Безопасность и мультиарендность Аутентификация использует JWT, где утверждения тенанта ограничивают операции списка, получения и изменения. Проект поддерживает роли RBAC, экспорт аудита и шифрование при хранении, а также документирует интеграцию с OIDC/SSO и SCIM, дополненную слоем совместимости с OpenStack и обучающими материалами для клиентов. Сети В README различаются два уровня политик, которые не следует путать: Fabric SDN (изоляция хостов на базе nftables с использованием меток, управляемая через /api/network-policies) и датаплан VM-edge Network Fabric, который прикрепляет программы TC/eBPF к интерфейсу хоста каждой VM. Edge-датаплан поддерживает белые списки IPv4/IPv6 CIDR (LPM-карты) для каждой VM, принудительное соблюдение протоколов/портов L4, лимиты скорости Mbps/PPS, а также статистику и записи потоков LRU для каждой VM. Все это доступно для чтения и записи через /api/vms/{name}/dataplane/{status,policy,stats,flows} и соответствующие подкоманды zyvorctl dataplane. Обновления политик описываются как перезапись карт BPF «на лету», при этом задокументировано короткое окно «запрета всего» во время реконфигурации вместо окна «разрешения всего». Описаны три режима: только legacy nftables, eBPF на границе VM и режим сосуществования с Cilium. Отдельный слой Service Fabric обеспечивает балансировку нагрузки Maglev VIP и сопутствующие функции. Постоянные политики хранятся в /var/lib/fluxvm/network-policy, а закрепленные программы и карты — в /sys/fs/bpf/fluxvm. Общий проброс PCI/VFIO для GPU и аналогичных устройств реализован через REST API. Развертывание Документировано четыре пути: bare metal через systemd или прямой бинарный файл со вспомогательными скриптами (включая однокомандные потоки «ship»), Docker/Podman Compose для локальной оценки с /dev/kvm и сетевым режимом хоста, Kubernetes с использованием привилегированных DaemonSet hostNetwork, Helm-чартами и скриптом для удаленной лаборатории k3s, а также режим «только оператор» для GitOps-процессов с существующим демоном. Требования к Kubernetes включают /dev/kvm на узлах, привилегированный уровень безопасности подов и root-контейнерный движок на хосте сборки. Учетные данные администратора генерируются при развертывании и доступны на диске или в Kubernetes Secret zyvor-fabric-secrets, также доступны переменные окружения для их установки или сброса. Примечания для оценки В README содержатся сравнительные материалы, в которых утверждается, что подход проекта к политикам на границе VM превосходит libvirt/nftables, брандмауэры общего моста, NAT в пользовательском режиме QEMU и типичные связки microVM-plus-CNI; это утверждения разработчиков, и некоторые приведенные показатели производительности (например, задержка обновления политик) описаны как лабораторные измерения. Основной набор документации в репозитории охватывает быстрый старт, Kubernetes, Docker, архитектуру, сети, веб-интерфейс, жизненный цикл хоста, управление и политику безопасности. Лицензия — Apache-2.0.