3.7 KiB
3.7 KiB
07 — Требования к инфраструктуре — ORCH-053
Work Item ID: ORCH-053
Топология
Без изменений. Новых контейнеров/портов/сервисов нет. Reconciler — фоновый
daemon-поток внутри существующего процесса orchestrator (как queue_worker).
Стартует/останавливается в main.lifespan. Деплой ORCH-053 — строго через
staging-гейт (8501) перед прод-деплоем (self-hosting, см. docs/operations/INFRA.md).
Новые переменные окружения (.env / .env.staging на хосте, префикс ORCH_)
| Env | Поле Settings |
Дефолт | Назначение |
|---|---|---|---|
ORCH_RECONCILE_ENABLED |
reconcile_enabled |
true |
Kill-switch всего sweeper'а (self-hosting safety, поэтапный раскат, аварийное отключение). |
ORCH_RECONCILE_INTERVAL_S |
reconcile_interval_s |
120 |
Период фонового прохода (сек). |
ORCH_RECONCILE_PLANE_ENABLED |
reconcile_plane_enabled |
true |
Отдельный флаг F-2 (опрос Plane API); false гасит только plane-ветку, F-1 работает. |
ORCH_RECONCILE_GRACE_DEFAULT_S |
reconcile_grace_default_s |
600 |
Дефолтный порог «застревания» по tasks.updated_at / issue.updated_at. |
ORCH_RECONCILE_GRACE_OVERRIDES_JSON |
reconcile_grace_overrides_json |
"" |
Per-stage пороги, напр. {"analysis":1800,"development":300,"deploy":900}. Невалидный JSON → дефолт (never-raise). |
ORCH_RECONCILE_NOTIFY_UNBLOCK |
reconcile_notify_unblock |
true |
Telegram при разблокировке (F-4). |
Секреты не добавляются. .env.example (канон) обновляется в PR реализации.
Нагрузка / сеть
- Plane API (F-2): GET issues per-project каждые
reconcile_interval_s, с фильтром по статусам (In Progress / Approved / Rejected) и пагинацией. Митигация нагрузки — интервал (120с), фильтр, per-project, never-raise (Plane outage →[], тик не падает).get_project_statesуже кэширует state-uuid per-project. - Gitea API (F-1): только косвенно — внутри переоценки гейтов (
check_ci_greenи т.п.), которые и так вызываются webhook-путём. Дополнительных постоянных вызовов reconciler не вносит сверх момента реальной разблокировки. - CPU/RAM: один спящий daemon-поток; всплеск только при наличии застрявших задач.
Self-hosting
- Reconciler не рестартит/не роняет прод-контейнер
orchestrator(8500), обслуживающий все проекты с общей БД. docs/operations/INFRA.mdдополняется упоминанием kill-switchORCH_RECONCILE_ENABLED(выполняется в PR реализации, §9 ТЗ).- Раскат: при первом деплое допустимо стартовать с
ORCH_RECONCILE_PLANE_ENABLED=false(только F-1, минимальный риск), затем включить F-2.
Конфиги/деплой
Дополнительных томов, портов, healthcheck'ов, изменений docker-compose/Dockerfile
не требуется.