Language / Язык: English | Русский
Конфигурация
Настройки приложения загружаются из окружения (см. .env.example).
Docker Compose инжектирует многие из них для сервиса simulator; значения,
объявленные в environment: в docker-compose.yml, переопределяют .env для этого
сервиса. Типизированная модель настроек находится в 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_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.
Безопасность и задачи
| Переменная |
Значение |
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. См. Безопасность и
Порты.
Заметки по 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 существует сегодня — см.
Безопасность.