Stateful FastAPI lab with contract packs, Compose/Helm, Docker Hub release targets, and Pulumi coverage across all Engine series (GET/POST/PUT/DELETE/HEAD).
2.8 KiB
Language / Язык: English | Русский
Getting started
Bring up a local Engine lab, authenticate, and run a first read against the simulator.
Prerequisites
- Docker and Docker Compose
make(optional but used by the documented commands)
Python, linters, and tests run inside containers. You do not need a local Python toolchain for day-to-day use.
Choose a path
| Path | When to use |
|---|---|
| Development checkout | Contribute / bind-mount source |
| Published image | Fastest lab using the Hub image |
| Helm / Kubernetes | Cluster install (no nginx gateway yet) |
1a. Development checkout
cp .env.example .env
make install
make up
make seed
| Host port | Service |
|---|---|
443 |
Engine API + SSO (HTTPS) |
5000 |
Web UI console (HTTP) |
Only these two ports are published. Internal FastAPI listens on :8080 inside
the compose network. See Ports.
Migrations run automatically via the migrate one-shot service.
1b. Published image
Uses docker-compose.release.yml — PostgreSQL +
migrate + simulator + Engine gateway from the Hub runtime image:
docker compose -f docker-compose.release.yml pull
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
Override the tag with IMAGE_TAG=0.1.0 if needed. From a git checkout:
make release-up
make release-seed PROFILE=minimal
2. Wait until ready
curl -skf https://127.0.0.1/health/ready
curl -sf http://127.0.0.1:5000/health/live
/health/ready returns HTTP 503 until PostgreSQL is reachable and the
latest packaged migration is applied.
3. Seed a profile
make seed # minimal lab
# or
make seed-demo # ~1000 VMs
See Seed profiles.
4. Authenticate and list VMs
curl -k -u 'admin@internal:secret' \
-H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/vms
Or obtain an OAuth token:
curl -k -X POST https://127.0.0.1/ovirt-engine/sso/oauth/token \
-d 'grant_type=password&username=admin@internal&password=secret&scope=ovirt-app-api'
Details: Authentication.
5. Open the Web UI
Browse http://127.0.0.1:5000/ — Auth drawer, API catalog, coverage, and Data reseed controls. See Web UI.
Next steps
- API versions — switch series packs (
OVIRT_SERIES) - Clients & examples — cookbooks
- Domains — VMs, storage, networks
- Troubleshooting — common failures