3.3 KiB
Language / Язык: English | Русский
Operations
Day-2 commands (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
Migrations
Ordered SQL under app/db/migrations/ applies transactionally.
Re-running make db-migrate is safe. /health/ready stays unavailable until
migrations are applied. Helm runs the same migrate step as an initContainer.
Reseed
make seed # minimal
make seed-demo # replaces state with demo cloud
Or:
docker compose exec simulator python -m app.openstack.seed_cli --profile demo
Reseed truncates OpenStack lab tables and reloads. External automation that cached resource UUIDs must refresh.
OpenStack pack series
Cold start (env):
OPENSTACK_SERIES=caracal docker compose up -d
Helm:
--set config.openstackSeries=yoga
Hot-swap (Web UI or API):
curl -X POST http://127.0.0.1:5000/ui/api/openstack/contracts/activate \
-H 'Content-Type: application/json' \
-d '{"series":"dalmatian"}'
Series: yoga, antelope, caracal, dalmatian. Coverage:
api_coverage.md.
Regenerating contract packs
PYTHONPATH=tools python3 tools/os_api_inventory/generate_packs.py
PYTHONPATH=tools python3 tools/os_api_inventory/coverage_report.py
Request body schemas (console)
Write methods (POST/PUT/PATCH) expose full JSON Schema field lists in the
web console. Schemas live in contracts/openstack/request_bodies/<service>.json
and are merged onto pack operations at load time (shared across series).
make request-bodies-generate # rebuild from in-repo api-ref catalog
make request-bodies-import # overlay Tier-1 services from openstack-openapi
make request-bodies-coverage # assert every write op has a schema
Tier-1 OpenAPI import covers nova, neutron, keystone, glance, cinder, octavia, swift, and placement. Other services use the curated catalog generator.
Backing up lab state
PostgreSQL is the system of record. Use pg_dump / volume snapshots.
Application containers are disposable when the database volume remains.
Publishing to 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
See kubernetes.md for logs, reseed via kubectl exec, and
uninstall.
API coverage lab CI (pulumi-tests)
Pulumi probes every pack operation across series — see hypervisor-lab.md.
make test-pulumi-smoke # from repo root
make test-pulumi
Reports: pulumi-tests/reports/pulumi-report.html and pulumi-junit.xml.
Upgrades
- Pull / build new image tag.
- Apply migrations (automatic on start / Helm initContainer).
- Optionally reseed if the seed schema changed.
- Re-run
make smokeor lifecycle probes.