97 lines
6.1 KiB
Markdown
97 lines
6.1 KiB
Markdown
**Language / Язык:** [English](../configuration.md) | [Русский](configuration.md)
|
||
|
||
# Конфигурация
|
||
|
||
Настройки приложения загружаются из окружения (см. `.env.example`).
|
||
Docker Compose инжектирует многие из них для сервиса `simulator`; значения,
|
||
объявленные в `environment:` в `docker-compose.yml`, переопределяют `.env` для этого
|
||
сервиса. Типизированная модель настроек находится в [`app/config.py`](../../app/config.py).
|
||
|
||
## Основное
|
||
|
||
| Переменная | По умолчанию / пример | Значение |
|
||
|---|---|---|
|
||
| `APP_HOST` | `0.0.0.0` | Адрес bind |
|
||
| `APP_PORT` | `8080` | Внутренний порт uvicorn (не публикуется; gateway публикует vCenter HTTPS) |
|
||
| `DATABASE_URL` | `postgresql://vmware:vmware@postgres:5432/vmware_simulator` | asyncpg DSN |
|
||
| `DB_POOL_MIN_SIZE` | `1` | Минимум пула |
|
||
| `DB_POOL_MAX_SIZE` | `10` | Максимум пула |
|
||
| `DB_CONNECT_TIMEOUT_SECONDS` | `10` | Таймаут подключения |
|
||
| `DB_COMMAND_TIMEOUT_SECONDS` | `30` | Таймаут команды |
|
||
| `LOG_LEVEL` | `INFO` | Уровень логирования |
|
||
| `REQUEST_ID_HEADER` | `X-Request-ID` | Заголовок корреляции запросов |
|
||
|
||
## vSphere seed inventory
|
||
|
||
| Переменная | По умолчанию | Значение |
|
||
|---|---|---|
|
||
| `SEED_VSPHERE_PROFILE` | `large` | `small` \| `large` \| `big` (`demo-cluster` = `big`) — см. [Профили seed](seed-profiles.md) |
|
||
| `SEED_VSPHERE_LARGE_HOSTS` | `10` | Число хостов для профиля `large` |
|
||
| `SEED_VSPHERE_LARGE_VMS` | `1000` | Число VM для профиля `large` |
|
||
|
||
## Опциональная legacy-плоскость
|
||
|
||
| Переменная | По умолчанию | Значение |
|
||
|---|---|---|
|
||
| `ENABLE_PVE_STUB` | `false` | Включает legacy Proxmox VE `/api2/*` stub-плоскость, унаследованную из общей platform lineage. Нативная vSphere `/api` + `/rest` + `/sdk` — основная плоскость по умолчанию независимо от этого флага. |
|
||
|
||
## Contract и catalog
|
||
|
||
| Переменная | Значение |
|
||
|---|---|
|
||
| `CONTRACT_SNAPSHOT` | Опциональный путь к нормализованному PVE-style snapshot (актуально только при `ENABLE_PVE_STUB=true`) |
|
||
| `CONTRACT_FALLBACK` | `error` (default), `schema-default`, или `fixture` — fallback-поведение для опциональной stub-плоскости |
|
||
| `COMPATIBILITY_EVIDENCE` | Опциональный путь к evidence JSON для отчётов совместимости |
|
||
| `CATALOG_ARTIFACT_URL_6` … `_9` | Метки catalog majors vSphere (6→7.0, 7→7.0 U3, 8→8.0, 9→8.0 U2); stub URLs, не live downloads |
|
||
|
||
Runtime hot-swap (Web UI / `POST /ui/api/contract/apply?major=N`) переключает
|
||
активный **catalog** major, используемый Web UI и compatibility/evidence
|
||
отчётами. Он не ограничивает зарегистрированную REST/SOAP поверхность — каждый
|
||
известный маршрут всегда обслуживается реальным обработчиком или DB-backed stub.
|
||
См. [Версии API](api-versions.md).
|
||
|
||
## Безопасность и задачи
|
||
|
||
| Переменная | Значение |
|
||
|---|---|
|
||
| `TICKET_SIGNING_KEY` | HMAC signing key для сессий (**меняйте вне toy labs**) |
|
||
| `TASK_WORKER_CONCURRENCY` | Число leased asyncio workers (1–32) |
|
||
| `TASK_LEASE_SECONDS` | Длительность lease PostgreSQL-задачи |
|
||
| `SIMULATION_TIME_SCALE` | Ускоряет симулированные длительности задач (выше = быстрее) |
|
||
|
||
## Client test hooks
|
||
|
||
| Переменная | Значение |
|
||
|---|---|
|
||
| `TEST_DATABASE_URL` | DSN для integration-тестов |
|
||
| `VSPHERE_BASE` | Базовый URL для cookbooks/probes (`https://localhost` с хоста, `http://simulator:8080` изнутри Compose) |
|
||
|
||
## Порты и TLS
|
||
|
||
| Endpoint | Назначение |
|
||
|---|---|
|
||
| `https://localhost` | Основная vCenter HTTPS точка входа (curl, browsers, pyvmomi, govmomi, Terraform, большинство examples) |
|
||
| `http://localhost` | HTTP-грань для лабораторных нужд |
|
||
| `localhost:5434` | PostgreSQL (только localhost) |
|
||
| Internal `simulator:8080` | Прямой процесс FastAPI; доступен только внутри Compose network |
|
||
|
||
Вшитый сертификат в `docker/tls/` — одноразовый development material.
|
||
Никогда не используйте его вне локальных labs. См. [Безопасность](security.md) и
|
||
[Порты](ports.md).
|
||
|
||
## Заметки по Compose
|
||
|
||
- `migrate` выполняется один раз; `simulator` ждёт успешного migrate.
|
||
- Development Compose bind-mount'ит репозиторий и включает Uvicorn reload.
|
||
- Сервис `api-gateway` (nginx) публикует `443`/`80` и проксирует на
|
||
внутренний процесс `simulator:8080`; устанавливает `X-VMware-Service` /
|
||
`X-Forwarded-Port`, чтобы будущие routers могли определить использованный listener.
|
||
|
||
## Открытые и неиспользуемые example keys
|
||
|
||
`.env.example` всё ещё перечисляет несколько ключей из общей platform lineage, которые
|
||
**не** потребляются текущей vSphere-first моделью настроек, в частности
|
||
`SIMULATION_SEED`, `SIMULATOR_ADMIN_ENABLED` и `SIMULATOR_ADMIN_TOKEN`. Не
|
||
предполагайте, что аутентифицированный admin API `/_simulator` существует сегодня — см.
|
||
[Безопасность](security.md).
|