Files
inecs af26ad4141 Return native Engine NotFound faults and clear Web UI session on 401.
Include the bad id in host/datacenter/cluster errors, expire stale auth in the
console, and document Ingress annotations that preserve fault bodies.
2026-07-22 06:52:04 +03:00

91 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
**Language / Язык:** [English](../configuration.md) | [Русский](configuration.md)
# Конфигурация
Настройки приложения загружаются из окружения (см. `.env.example`).
Docker Compose подставляет многие из них для сервиса `simulator`.
## Основные
| Переменная | По умолчанию / пример | Назначение |
|---|---|---|
| `APP_HOST` | `0.0.0.0` | Адрес привязки |
| `APP_PORT` | `8080` | Внутренний порт FastAPI (не публичный Engine) |
| `DATABASE_URL` | `postgresql://ovirt:ovirt@postgres:5432/ovirt_simulator` | DSN asyncpg |
| `TEST_DATABASE_URL` | как выше | DSN для интеграционных тестов |
| `DB_POOL_MIN_SIZE` | `1` | Минимум пула |
| `DB_POOL_MAX_SIZE` | `10` | Максимум пула |
| `LOG_LEVEL` | `INFO` | Уровень логирования |
| `REQUEST_ID_HEADER` | `X-Request-ID` | Заголовок корреляции запросов |
## Series Engine и seed
| Переменная | По умолчанию | Назначение |
|---|---|---|
| `OVIRT_SERIES` | `4.5` | Контрактный pack при cold start (`3.0``3.6`, `4.3``4.5`, `master`) |
| `SEED_PROFILE` | `minimal` | Для seed CLI / Helm seed Job (`minimal` / `demo`) |
## Безопасность и задачи
| Переменная | Назначение |
|---|---|
| `TICKET_SIGNING_KEY` | Материал подписи лабораторных токенов (**меняйте вне игрушечных стендов**) |
| `TASK_WORKER_CONCURRENCY` | Число воркеров с арендой (1–32) |
| `TASK_LEASE_SECONDS` | Длительность аренды задач в PostgreSQL |
| `SIMULATION_TIME_SCALE` | Ускоряет длительность симулируемых jobs |
## Публикация портов на хост
| Переменная | По умолчанию | Назначение |
|---|---|---|
| `OVIRT_ENGINE_PORT` | `443` | Host → gateway `:443` (Engine HTTPS) |
| `OVIRT_UI_PORT` | `5000` | Host → gateway `:5000` (Web UI) |
См. [Порты](ports.md).
## Compose
| Файл | Роль |
|---|---|
| `docker-compose.yml` | Dev-стек (сборка + bind mounts) |
| `docker-compose.release.yml` | Опубликованный образ Hub |
| `.env` / `.env.example` | Локальные переопределения |
Сервисы:
- **simulator** — FastAPI на внутреннем `8080`
- **api-gateway** — nginx, публикующий Engine + UI ([ports.md](ports.md))
- **postgres** — `postgres:17.5-bookworm` (host-порт по умолчанию не публикуется)
- **migrate** — one-shot миграции схемы
## Helm
См. [Kubernetes / Helm](kubernetes.md) и
[`helm/ovirt-api-simulator/values.yaml`](../../helm/ovirt-api-simulator/values.yaml).
| Value | Назначение |
|---|---|
| `image.repository` / `image.tag` | Образ контейнера |
| `config.ovirtSeries` | Pack series → env `OVIRT_SERIES` |
| `seed.profile` | `minimal` / `demo` |
| `postgresql.enabled` | Встроенная БД |
| `databaseUrl` | Внешний DSN, если встроенный Postgres выключен |
| `secrets.ticketSigningKey` | Нужно ротировать на общих кластерах |
| `service.port` | Порт ClusterIP (по умолчанию `8080`) |
`gateway.*` не используется (нет nginx gateway как в Compose).
`ingress.*` опционален — см.
[`values-ingress-example.yaml`](../../helm/ovirt-api-simulator/values-ingress-example.yaml)
и [Устранение неполадок](troubleshooting.md) для annotations, сохраняющих
тела fault Engine.
## Контрактные packs
Расположение: `contracts/ovirt/<series>/`.
В каждом series: `api.json`, `manifest.json` и `deltas.json`. Перегенерация:
```bash
make generate-packs
```