Files
vmware-api-simulator/docs/ru/configuration.md
T

97 lines
6.1 KiB
Markdown
Raw 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`; значения,
объявленные в `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 (132) |
| `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).