python-compute/README.md

50 lines
3.3 KiB
Markdown
Raw Normal View History

2023-11-06 12:52:19 +03:00
# Compute Service
2023-06-17 20:07:50 +03:00
2023-09-23 21:24:56 +03:00
В этом репозитории развивается базовая библиотека для взаимодействия с libvirt и выполнения операций с виртуальными машинами. Фокус на QEMU/KVM.
2023-06-17 20:07:50 +03:00
2023-11-06 12:52:19 +03:00
## Зависимости (версии из репозитория Debian 12):
2023-07-22 23:59:49 +03:00
- `python3-lxml` 4.9.2
- `python3-docopt` 0.6.2
2023-09-02 00:52:28 +03:00
- `python3-libvirt` 9.0.0
2023-07-22 23:59:49 +03:00
2023-08-27 23:42:56 +03:00
Минимальная поддерживаемая версия Python — `3.11`, потому, что можем.
2023-07-22 23:59:49 +03:00
2023-11-06 12:52:19 +03:00
## API
2023-06-17 20:07:50 +03:00
2023-08-27 23:42:56 +03:00
В структуре проекта сейчас бардак, многое будет переосмыслено и переделано позже. Основная цель на текущем этапе — получить минимально работающий код, с помощью которого возможно выполнить установку виртуальной машины и как-то управлять ею.
2023-07-22 23:59:49 +03:00
2023-11-06 12:52:19 +03:00
Есть набор классов, предоставляющих собой интерфейсы для взаимодействия с виртуальными машинами, стораджами, дисками и т.п. Датаклассы описывают сущности и имеют метод `to_xml()` для получения XML конфига для `libvirt`. Смысл использования датаклассов в том, чтобы иметь один объект, содержащий в себе нормальные легкочитаемые аттрибуты и XML описание сущности одновременно.
## ROADMAP
- [ ] Установка инстансов
- [ ] Установка с использованием эталонного образа ОС
- [ ] Установка с пустым диском и загрузкой с ISO
- [ ] Установка с использованием готового волюма
- [x] Базовое управление питанием
- [ ] Остановка и возобновление инстансов
- [ ] Изменение числа vCPU на горячую
- [ ] Изменение топологии процессора
- [ ] Выбор типа эмуляции процессора, вендора, модели и инструкций
- [ ] Изменение памяти на горячую
- [ ] Ресайз дисков на горячую
- [ ] Выбор между BIOS и UEFI
- [ ] Редактирование параметров загрузки (boot menu, etc)
- [x] Горячее подключение устройств
- [ ] Горячее отключение устройств
- [ ] GPU
- [ ] Поддержка инстансов с разной гарантированной долей CPU
- [x] Базовое управление QEMU Guest Agent
- [ ] Проверка доступности и возможностей QEMU Guest Agent
2023-07-22 23:59:49 +03:00
- [ ] Статистика потребления ресурсов
2023-11-06 12:52:19 +03:00
- [ ] Управление SSH-ключами
- [ ] Изменение пароля root
- [ ] LXC
- [ ] Работа с дисками QCOW2,3
- [ ] ZVOL
- [ ] Сетевые диски
- [ ] Создание Storage Pool на основе TOML/YAML описания
- [ ] Удаление Storage Pool
- [ ] Снапшоты