python-compute/README.md
2023-11-06 12:52:19 +03:00

50 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Compute Service
В этом репозитории развивается базовая библиотека для взаимодействия с libvirt и выполнения операций с виртуальными машинами. Фокус на QEMU/KVM.
## Зависимости (версии из репозитория Debian 12):
- `python3-lxml` 4.9.2
- `python3-docopt` 0.6.2
- `python3-libvirt` 9.0.0
Минимальная поддерживаемая версия Python — `3.11`, потому, что можем.
## API
В структуре проекта сейчас бардак, многое будет переосмыслено и переделано позже. Основная цель на текущем этапе — получить минимально работающий код, с помощью которого возможно выполнить установку виртуальной машины и как-то управлять ею.
Есть набор классов, предоставляющих собой интерфейсы для взаимодействия с виртуальными машинами, стораджами, дисками и т.п. Датаклассы описывают сущности и имеют метод `to_xml()` для получения XML конфига для `libvirt`. Смысл использования датаклассов в том, чтобы иметь один объект, содержащий в себе нормальные легкочитаемые аттрибуты и XML описание сущности одновременно.
## ROADMAP
- [ ] Установка инстансов
- [ ] Установка с использованием эталонного образа ОС
- [ ] Установка с пустым диском и загрузкой с ISO
- [ ] Установка с использованием готового волюма
- [x] Базовое управление питанием
- [ ] Остановка и возобновление инстансов
- [ ] Изменение числа vCPU на горячую
- [ ] Изменение топологии процессора
- [ ] Выбор типа эмуляции процессора, вендора, модели и инструкций
- [ ] Изменение памяти на горячую
- [ ] Ресайз дисков на горячую
- [ ] Выбор между BIOS и UEFI
- [ ] Редактирование параметров загрузки (boot menu, etc)
- [x] Горячее подключение устройств
- [ ] Горячее отключение устройств
- [ ] GPU
- [ ] Поддержка инстансов с разной гарантированной долей CPU
- [x] Базовое управление QEMU Guest Agent
- [ ] Проверка доступности и возможностей QEMU Guest Agent
- [ ] Статистика потребления ресурсов
- [ ] Управление SSH-ключами
- [ ] Изменение пароля root
- [ ] LXC
- [ ] Работа с дисками QCOW2,3
- [ ] ZVOL
- [ ] Сетевые диски
- [ ] Создание Storage Pool на основе TOML/YAML описания
- [ ] Удаление Storage Pool
- [ ] Снапшоты