architect(ET): auto-commit from architect run_id=626

This commit is contained in:
2026-06-11 01:23:18 +03:00
committed by orchestrator-deployer
parent 4050ccbfde
commit 054b78c8ca
5 changed files with 623 additions and 0 deletions

View File

@@ -210,6 +210,38 @@ sidecar читает только `.env.watchdog`; C-1 ORCH-100 — отдель
(docs+tests). Подробнее: [adr-0037](adr/adr-0037-lite-replication-canon.md), детально —
`docs/work-items/ORCH-102/06-adr/ADR-001-lite-setup-doc-canon.md`.
**Type B — Bundled (ORCH-103 — design).** Закрывает эпик ORCH-10: весь стек одним комплектом
(орк + watchdog + Gitea + Plane CE ≈1314 контейнеров) для заказчика без собственной
инфраструктуры. Новый top-level каталог **`deploy/`** (исполняемые дистрибутивы; дополняет
`docs/deployment/` — инструкции): `deploy/bundled/docker-compose.yml` — один самодостаточный
compose с `name: orchestrator-bundle` (узнаваемый префикс томов/контейнеров; `container_name`
не пиннится — нет коллизий с корневым compose на одном хосте), пиннинг сторонних образов
неподвижными тегами литералом (не `latest`); корневой compose не форкается (заморожен
анти-дрейфом ORCH-102); staging-контур орка в bundle отсутствует, репо `orchestrator` не
регистрируется → self-deploy-машинерия структурно спит (`SELF_HOSTING_REPO`-леафы не матчатся).
Сеть — одна bridge: машинный трафик строго сервис-DNS (webhooks в обе стороны, API, /metrics),
наружу — только человеческие порты (Plane 8080 / Gitea 3000 / орк 8500; явный
`GITEA__webhook__ALLOWED_HOST_LIST=orchestrator` против дефолтного запрета приватных таргетов).
Конфиг-слои: `deploy/bundled/.env.example` (канон bundle-инфры, key-set-sync тест) → live
`deploy/bundled/.env` (авто-чтение compose из project dir, без `--env-file`-футгана); runtime
орка/watchdog — корневые `.env`/`.env.watchdog` ровно по канону Lite (`env_file: required:
false` до сборки); **единственный писатель live-файлов — bootstrap**.
`scripts/bootstrap_bundle.py` (python stdlib-only, `plan`-дефолт/`apply`/`verify`, step-движок
check→ensure, exit 0/2/1): preflight fail-fast до мутаций → секреты (`gen_secrets.py` +
stdlib-креды стека, в логи не печатаются) → up+ожидание готовности → init Gitea (полностью
автоматом через CLI; branch protection НЕ включать — D10 ORCH-009) → init Plane CE (честные
manual-step: инструкция → подтверждение → API-верификация результата) → онбординг
sandbox-проекта строго `onboard_project.py apply`/`verify` (host-venv, канон ONBOARDING) →
git-доступ агентов token-remote (`_push_url`-паттерн; ssh-контур не вводится) → сборка env
орка → health/итог; delete-операций в скрипте нет — teardown только документированной
процедурой (§13). Golden source — `docs/deployment/BUNDLED_SETUP.md` (14 разделов по канону
LITE_SETUP, требования к хосту по замеру тестового развёртывания; REPLICATION §1 — отметка
Type B). Анти-дрейф — `tests/test_bundle_compose.py` / `test_bundled_setup_doc.py` /
`test_bootstrap_script.py`. Рантайм/конвейер — байт-в-байт; kill-switch не нужен (активация —
только явный запуск оператора на целевом хосте, паттерн ORCH-009). Подробнее:
[adr-0038](adr/adr-0038-bundled-replication-canon.md), детально —
`docs/work-items/ORCH-103/06-adr/ADR-001-bundled-stack-compose-and-bootstrap.md`.
## Конвейер и Quality Gates
```