**Language / Язык:** [English](../operations.md) | [Русский](operations.md) # Эксплуатация ## Compose день за днём ```bash make up # сборка + старт + wait make restart # force recreate make logs # логи всех сервисов make down # остановка make seed # перезагрузка minimal make seed-demo # перезагрузка demo (~1000 ВМ) make smoke # Basic auth + список ВМ ``` ## Миграции Сервис Compose `migrate` / init-контейнер Helm запускает `python -m app.db.migrate_cli` до готовности симулятора. Не направляйте клиенты на Engine, пока `/health/ready` не успешен. История схемы начинается с `001_ovirt_core.sql`. Если обновляетесь с более ранней pre-release БД, пересоздайте том: ```bash docker compose down -v make up && make seed ``` ## Reseed Reseed **очищает** лабораторные таблицы. В общем CI предпочитайте `minimal`; `demo` — когда нужна плотность. ```bash make seed-demo # или Web UI → Data → demo ``` ## Смена series **Cold start** — измените `OVIRT_SERIES` и пересоздайте контейнер симулятора: ```bash OVIRT_SERIES=4.4 make restart ``` **Hot-swap** (in-memory, без пересборки) — Web UI **API catalog** → **Apply as runtime**, или: ```bash curl -s http://127.0.0.1:5000/ui/api/ovirt/contracts/activate \ -H 'Content-Type: application/json' \ -d '{"series":"4.4"}' ``` См. [Версии API](api-versions.md) и [Web UI](web-ui.md). ## Очистка клиентской лаборатории ```bash make clean-test-resources ``` Удаляет ресурсы, созданные [`pulumi-tests/`](../../pulumi-tests/README.ru.md). ## Публикация в Docker Hub `make release` собирает **runtime**-образ (production target — не локальный bind-mounted образ `dev`) и публикует его в Docker Hub: ```bash docker login # once; account must own or can push to DOCKERHUB_USER make release ``` Значения по умолчанию: | Переменная | По умолчанию | Назначение | |---|---|---| | `DOCKERHUB_USER` | `inecs` | Namespace/org в Docker Hub | | `IMAGE_NAME` | `ovirt-api-simulator` | Имя репозитория | | `VERSION` | from `pyproject.toml` | Тег образа | | `PUSH_LATEST` | `1` | Также тегировать/пушить `:latest` | Примеры: ```bash make release make release VERSION=0.2.0 make release DOCKERHUB_USER=myorg PUSH_LATEST=0 make release-build # build/tag locally without pushing ``` Опубликованные теги: - `inecs/ovirt-api-simulator:` - `inecs/ovirt-api-simulator:latest` (если не `PUSH_LATEST=0`) ## Быстрый старт с опубликованным compose-файлом [`docker-compose.release.yml`](../../docker-compose.release.yml) подтягивает runtime-образ из Hub и запускает PostgreSQL + migrate + simulator + Engine gateway: ```bash docker compose -f docker-compose.release.yml up -d docker compose -f docker-compose.release.yml run --rm --entrypoint python \ simulator -m app.ovirt.seed_cli --profile minimal curl -skf https://127.0.0.1/health/ready ``` Вспомогательные команды из git checkout: ```bash make release-up make release-seed PROFILE=minimal # или: make release-seed PROFILE=demo make release-down ```