Persist aggregates and server security groups in domain tables, add Cinder quota show from DB-backed defaults, align unit tests with OpenStack series, auto-pick Keystone :5000/:15000 for smoke, and document test locations plus 6514/6514 results.
5.7 KiB
Language / Язык: English | Русский
Эксплуатация
Day-2 команды (Compose)
make up # start stack
make down # stop stack
make restart
make logs
make db-migrate # idempotent migrations
make seed # minimal OpenStack seed
make seed-demo # demo cloud (~1000 servers)
make smoke # multi-service GET smoke
Миграции
Упорядоченный SQL в app/db/migrations/ применяется транзакционно.
Повторный запуск make db-migrate безопасен. /health/ready остаётся недоступным,
пока миграции не применены. Helm выполняет тот же migrate-шаг как initContainer.
Reseed
make seed # minimal
make seed-demo # replaces state with demo cloud
Или:
docker compose exec simulator python -m app.openstack.seed_cli --profile demo
Reseed очищает лабораторные таблицы OpenStack и перезагружает данные. Внешняя автоматизация с закэшированными UUID ресурсов должна обновить их.
OpenStack pack series
Cold start (env):
OPENSTACK_SERIES=caracal docker compose up -d
Helm:
--set config.openstackSeries=yoga
Hot-swap (Web UI или API):
curl -X POST http://127.0.0.1:5000/ui/api/openstack/contracts/activate \
-H 'Content-Type: application/json' \
-d '{"series":"dalmatian"}'
Серии: yoga, antelope, caracal, dalmatian. Покрытие:
api_coverage.md.
Перегенерация contract-пакетов
PYTHONPATH=tools python3 tools/os_api_inventory/generate_packs.py
PYTHONPATH=tools python3 tools/os_api_inventory/coverage_report.py
Схемы Request body (консоль)
Для POST/PUT/PATCH консоль показывает полные JSON Schema поля.
Схемы лежат в contracts/openstack/request_bodies/<service>.json и
подмешиваются к операциям пака при загрузке (общие для всех серий).
make request-bodies-generate # пересобрать из api-ref каталога
make request-bodies-import # наложить Tier-1 из openstack-openapi
make request-bodies-coverage # проверить, что у всех write-op есть схема
Tier-1: nova, neutron, keystone, glance, cinder, octavia, swift, placement. Остальные сервисы — курируемый генератор каталога.
Резервное копирование состояния лаборатории
PostgreSQL — источник истины. Используйте pg_dump / снимки volume.
Контейнеры приложения одноразовые, если volume БД сохранён.
Публикация на Docker Hub
docker login
make release
| Variable | Default | Meaning |
|---|---|---|
DOCKERHUB_USER |
inecs |
Docker Hub namespace |
IMAGE_NAME |
openstack-api-simulator |
Repository name |
VERSION |
from pyproject.toml |
Image tag |
make release VERSION=0.2.0
make release-build # local tags only
Kubernetes day-2
См. kubernetes.md для логов, reseed через kubectl exec и
удаления.
Тестирование
| Где | Что |
|---|---|
tests/unit/ |
Офлайн unit (ASGI / FakeDatabase) |
tests/openstack/ |
Pack-контракты, registry, live surface / lifecycle |
tests/integration/ |
Интеграция с PostgreSQL |
tests/compatibility/ |
Surface probe и group smoke |
examples/python/openstack_smoke.py |
Host multi-port smoke (make smoke / make test-compatibility) |
examples/python/openstack_surface_probe.py |
Lifecycle-probe каждой pack-операции × серии |
pulumi-tests/ |
Pulumi Layer B + полная HTTP-матрица (yoga→dalmatian) |
make test # офлайн unit + contract (без Postgres)
make test-integration # -m integration (Postgres)
make test-surface # surface probe + tests/openstack против Compose
make test-compatibility # seed minimal + openstack_smoke.py
make pulumi-tests # полный сьют pulumi-tests (alias: make test-pulumi)
make test-pulumi-smoke # быстрый режим: collection GET + HEAD
Подробнее о Pulumi-лаборатории: hypervisor-lab.md.
Отчёты: pulumi-tests/reports/pulumi-report.html, pulumi-junit.xml, summary.json.
Последние результаты лаборатории (2026-07-18)
| Сьют | Результат |
|---|---|
make test |
243 passed (34 deselected) |
make test-integration |
33 passed |
| Surface probe (yoga→dalmatian) | 1464 / 1530 / 1649 / 1871 ops — 0 fail |
make pulumi-tests (полная matrix) |
HTTP 6514 / 6514, http_critical=0, pulumi 4 / 4 серии |
| Compatibility smoke | OK (авто Keystone :5000 или локальный :15000) |
Пересобрать HTML-отчёт: make -C pulumi-tests report после прогона.
Обновления
- Pull / build нового тега образа.
- Примените миграции (автоматически при старте / Helm initContainer).
- Опционально reseed, если изменилась seed-схема.
- Повторите
make smokeили lifecycle probes.