Files
proxmox-api-simulator/docs/ru/configuration.md
T
Sergey Antropoff 48df10b17e Prepare 0.1.0 for lab release: durable handlers, HTTP Compose, CI, and pulumi-tests.
- Harden DB-backed handlers and seed profiles; align client wire shapes for
  cluster resources, QEMU config, and node SSL fields
- Serve plain HTTP on Compose :8006; keep TLS optional (--profile tls) and
  terminate HTTPS at Kubernetes Ingress
- Add pulumi-tests (full contract surface majors 6–9 + BPG lifecycle) and
  make pulumi-tests
- Ship bilingual docs, CHANGELOG, SECURITY, CONTRIBUTING, and GitHub Actions
  (make ci + Compose/Helm validation)
2026-07-18 04:18:05 +03:00

7.0 KiB
Raw Blame History

Language / Язык: English | Русский

Конфигурация

Настройки приложения загружаются из окружения (см. .env.example). Docker Compose подставляет многие из них для сервиса simulator; значения, объявленные в environment: в docker-compose.yml, переопределяют .env для этого сервиса.

Основные

Переменная По умолчанию / пример Назначение
APP_HOST 0.0.0.0 Адрес привязки
APP_PORT 8006 HTTP-порт прослушивания
DATABASE_URL postgresql://proxmox:proxmox@postgres:5432/proxmox_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 Заголовок корреляции запросов

Контракт и каталог

Переменная Назначение
CONTRACT_SNAPSHOT Путь к нормализованному снимку, загружаемому при холодном старте
CONTRACT_FALLBACK error (по умолчанию), schema-default или fixture — поведение для методов без семантического обработчика
COMPATIBILITY_EVIDENCE Необязательный evidence JSON для отчётов совместимости
CATALOG_ARTIFACT_URL_6_9 Официальные URL API Viewer при импорте/кэшировании мажоров каталога

Горячая замена в runtime (Web UI / POST /ui/api/contract/apply) заменяет таблицу маршрутов в памяти для мажоров 69 без перезаписи CONTRACT_SNAPSHOT. Перезапуск процесса восстанавливает снимок холодного старта. См. Версии API.

При 100% покрытии обработчиков на мажорах 6–9 CONTRACT_FALLBACK не используется для объявленных методов активного контракта. В production-подобных лабораториях оставляйте error, чтобы любой случайный пробел проявлялся как HTTP 501.

Безопасность и задачи

Переменная Назначение
TICKET_SIGNING_KEY HMAC-ключ для тикетов и CSRF-токенов, привязанных к тикету (меняйте вне игрушечных лабораторий)
TASK_WORKER_CONCURRENCY Число asyncio workers с арендой (132)
TASK_LEASE_SECONDS Длительность аренды задачи в PostgreSQL
SIMULATION_TIME_SCALE Ускоряет симулируемые длительности задач

Seed и хуки клиентских тестов

Переменная Назначение
SEED_PROFILE Имя профиля для seed CLI (small, medium, …)
SEED_LARGE_NODES Число узлов для large
SEED_LARGE_RESOURCES Число гостей для large (по умолчанию 10 000)
TEST_DATABASE_URL DSN для интеграционных тестов
PROXMOXER_HOST / PROXMOXER_PORT Цель клиента совместимости (tls-gateway / 8443 в Compose)

Порты и TLS

Реальный Proxmox VE (справочно)

На физическом / production-узле PVE management API слушает HTTPS :8006 (/api2/json/...). Связанные management-порты (это не отдельные REST API):

Порт Протокол Назначение
8006 TCP, HTTPS Web UI + REST API
3128 TCP SPICE proxy (графическая консоль)
59005999 TCP (WebSocket) VNC web-консоль
22 TCP SSH / кластерные операции
54055412 UDP Трафик Corosync

Порт 8007не API PVE: обычно это management-порт Proxmox Backup Server (PBS). Не направляйте PVE-клиентов на :8007 на реальном железе.

Эндпоинты лабораторного симулятора

Эндпоинт Использование
http://localhost:8006 Основной URL клиентов — nginx TLS-шлюз → симулятор (curl, браузеры, proxmoxer, Terraform, …)

Сам процесс симулятора говорит по HTTP на :8006 внутри Docker-сети. Compose публикует self-signed HTTPS-фронт на хосте :8006 (тот же порт, что у реального PVE), чтобы неизменённые TLS-клиенты вели себя как против production (https://host:8006/api2/json/...). Внутри Compose шлюз слушает 8443 и проксирует на simulator:8006. Хост :8007 больше не используется для лабораторного API (на реальном железе этот порт обычно PBS, не PVE).

Встроенный сертификат в docker/tls/ — одноразовый материал для разработки. Никогда не используйте его вне локальных лабораторий. См. Безопасность.

Заметки по Compose

  • migrate выполняется один раз; simulator ждёт успешного migrate.
  • Development Compose монтирует репозиторий и включает Uvicorn reload.
  • В Compose по умолчанию CONTRACT_SNAPSHOT закрепляет встроенную ревизию PVE 9.2.3 для холодного старта.

Открытые и неиспользуемые ключи в примере

.env.example может по-прежнему перечислять ключи вроде PVE_API_VERSION, SIMULATION_SEED, SIMULATOR_ADMIN_ENABLED и SIMULATOR_ADMIN_TOKEN, которые не потребляются текущей моделью настроек. Для мажорной версии по умолчанию используйте CONTRACT_SNAPSHOT, для runtime-переключений — Web UI / apply API. Не предполагайте, что сегодня существует аутентифицированный admin API /_simulator.