48 lines
3.3 KiB
Markdown
48 lines
3.3 KiB
Markdown
# 07 — Инфра-требования: ORCH-040
|
||
|
||
Work Item: **ORCH-040** · Решение: [ADR-001](06-adr/ADR-001-run-agents-as-host-uid.md) (Вариант 1)
|
||
|
||
> Требования к рантайму/инфре, которые Dev обязан реализовать, а Reviewer — проверить.
|
||
> Топология стадий и БД **не меняются**. Меняется только runtime-uid контейнера и target SSH-маунта.
|
||
|
||
## R-1 — runtime uid контейнера
|
||
- Оба сервиса в `docker-compose.yml` запускаются под `user: "1000:1000"`.
|
||
- `group_add: ["999"]` **сохраняется** на обоих (docker.sock через gid 999, МИНА 1).
|
||
|
||
## R-2 — SSH-маунт согласован с HOME
|
||
- target SSH-маунта = `/home/slin/.ssh` (не `/root/.ssh`) на обоих сервисах.
|
||
- Совпадает с `HOME=/home/slin`, форсимым в `src/agents/launcher.py` (L326, L513).
|
||
- Источник (`/home/slin/.orchestrator-ssh`) и режим `:ro` — без изменений.
|
||
|
||
## R-3 — claude-маунты без изменений
|
||
- `/home/slin/.claude` (rw) и `/home/slin/.claude.json:ro` остаются.
|
||
- Доступ под uid 1000 обеспечивается host-prerequisite P-1 (chown creds), см. ADR.
|
||
|
||
## R-4 — образ и launcher без изменений (по умолчанию)
|
||
- `Dockerfile` не меняется (numeric uid не требует записи в `/etc/passwd`;
|
||
`safe.directory '*'` уже есть). Изменение допустимо только при доказанной поломке под 1000.
|
||
- `src/agents/launcher.py` не меняется (`HOME`, `CLAUDE_BIN` валидны под 1000).
|
||
|
||
## R-5 — host-prerequisites (Owner, вне кода)
|
||
P-1…P-4 из ADR §«Host-prerequisites» — обязательная процедура. P-1 (доступ uid 1000 к
|
||
claude creds) — блокер: без него preflight (ORCH-044) заворачивает конвейер.
|
||
|
||
## R-6 — порядок внедрения
|
||
1. staging (8501) end-to-end → `15-staging-log.md` / `check_staging_status` зелёный;
|
||
2. прод-рестарт self — только в окно тишины (`GET /status` без активных задач, P-4);
|
||
3. регресс на хосте: новые tracked-артефакты `1000:1000`, `git pull` под slin без ошибок.
|
||
|
||
## R-7 — обновление документации (golden source)
|
||
Dev в том же PR обновляет:
|
||
- `docs/operations/INFRA.md` — блок «Тома (volumes)» (SSH target `/home/slin/.ssh`) и
|
||
явное указание runtime-uid (`user: 1000:1000`) контейнеров; команда разового хост-`chown`
|
||
legacy `root:root` файлов.
|
||
- `CHANGELOG.md` — запись `fix:`/`refactor:`.
|
||
- глобальный [adr-0005](../../architecture/adr/adr-0005-container-runs-as-host-uid.md) уже
|
||
заведён архитектором; индекс `docs/architecture/adr/README.md` обновлён.
|
||
|
||
## Что НЕ требуется
|
||
- Новых томов, портов, env-переменных — нет.
|
||
- Изменения API, схемы БД, реестра QG/стадий — нет.
|
||
- Multi-node / облачные сервисы — нет (принципы архитектуры).
|