meta(handoff): emspb LIVE+cutover done, labtools still awaiting DNS-flip

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-02 00:39:41 +03:00
parent c3b722bb6d
commit 353e3dcd8a

View File

@@ -1,43 +1,39 @@
--- ---
_last_updated_: 2026-07-01T13:45:00Z _last_updated_: 2026-07-02T00:40:00Z
session_id: 2026-07-01-labtools-vds-staging session_id: 2026-07-02-emspb-vds-deploy-cutover
--- ---
# Next session handoff # Next session handoff
## Recent commits ## Recent commits
- `deploy(labtools)`: staging собран+развёрнут на vds-kzntsv, smoke parity GREEN, рунбук + стек-черновик (этой сессии). - `deploy(emspb)` `c3b722bb`: emspb.ru snolla-app LIVE на vds-kzntsv — staging собран+развёрнут (stack 18) + **cutover выполнен в ту же сессию** (оператор флипнул DNS), live-smoke GREEN. Запушен.
- (до этого: pilonuxt sitemap taxonomy deploys — не связано) - `deploy(labtools)` `a15fd65a`: labtools staging GREEN на vds-kzntsv (stack 17) — ждёт DNS-flip.
## Open треки ## Open треки
| Трек | Готовность | Entry-point | | Трек | Готовность | Entry-point |
|---|---|---| |---|---|---|
| `[labtools-web-vds-deploy]` | STAGING GREEN, ждём DNS-cutover | `.tasks/STATUS.md` + `.wiki/concepts/labtools-vds-deploy-runbook.md` | | `[labtools-web-vds-deploy]` | STAGING GREEN, **ждём DNS-cutover** | `.tasks/STATUS.md` + `.wiki/concepts/labtools-vds-deploy-runbook.md` |
| `[emspb-web-vds-deploy]` | 🟢 **closed** (staging+cutover LIVE) | `.wiki/concepts/emspb-vds-deploy-runbook.md` |
**Состояние labtools:** образ `registry.kzntsv.site/labtools:43e28ba` собран на VDS + push; Portainer stack `labtools` ## Состояние emspb (DONE)
(Id 17, endpoint 1) на `labtools.vds.kzntsv.site`, контейнер healthy; 8 секрет-env в stack-env. Smoke vs бой `emspb.ru`+`www.emspb.ru` LIVE на VDS (`89.253.255.94`), Portainer stack `emspb` (Id 18), образ `registry.kzntsv.site/emspb:b6e361a`. traefik-rule = боевые хосты (staging-хост убран→404), единый LE-cert, `ssl_verify=0`. RUVDS IIS `80.64.31.36` цел = rollback. Env == labtools (8 секретов). Рунбук записан. Workshop отрепорчен.
`www.labtools.ru` — GREEN (меню 200/200, редиректы 301 1:1, тема+`/assets` из MinIO байт-в-байт, Cache-Control 86400).
Бой на RUVDS IIS (`80.64.31.36`) ЖИВОЙ, не тронут. Env-контракт (8 секретов, источники) — в рунбуке.
## Спроси user'а ## Состояние labtools (ЖДЁТ)
- **DNS хозяин перенастраивает A-записи `labtools.ru`/`www``89.253.255.94` ЗАВТРА (2026-07-02).** Как оператор Образ `registry.kzntsv.site/labtools:43e28ba`, Portainer stack `labtools` (Id 17), STAGING `labtools.vds.kzntsv.site` healthy, smoke vs бой GREEN. Бой на RUVDS IIS (`80.64.31.36`) живой. **DNS labtools.ru/www ВСЁ ЕЩЁ на RUVDS** (проверено 2026-07-02 внешним резолвером) — cutover НЕ выполнен.
подтвердит «DNS флипнут / флипаю сейчас» — выполнить cutover ops-шаги (ниже).
- `labtools.pro` — отдельная таска (оператор решил 2026-07-01, не в scope этой). Ждёт заведения.
## Cutover ops-шаги (по сигналу оператора о флипе — НЕ раньше) ## Спроси оператора / жди сигнал
1. В стеке `labtools` (Portainer Id 17) добавить в traefik-rule: `Host(labtools.ru) || Host(www.labtools.ru)` - **labtools DNS-cutover** — как оператор скажет «флипнул labtools» (проверить внешним резолвером что именно labtools→VDS!): добавить в stack 17 traefik-rule `Host(labtools.ru) || Host(www.labtools.ru)`, дождаться LE-cert, smoke на боевом хосте, убрать staging-хост post-cutover, отрепортить. Рунбук labtools § Cutover.
**синхронно с флипом** (не заранее — см. guard ниже). Правка source: `admin/host-stacks/vds-kzntsv/labtools.compose.yml` → PUT в Portainer. - `labtools.pro` — отдельная таска, ждёт заведения (оператор решил 2026-07-01).
2. Проверить LE cert выпущен на боевом хосте + прогнать тот же смоук-свип уже на `https://www.labtools.ru`.
3. Отчитаться оператору + workshop (from admin).
## Не делать (preemptive guards) ## Не делать (guards)
- **НЕ добавлять `Host(labtools.ru)` в traefik-rule ДО флипа DNS** — traefik проактивно на reload тянет LE-cert (HTTP-01), - **НЕ добавлять `Host(labtools.ru)` в traefik-rule ДО флипа DNS** — LE HTTP-01 упадёт на RUVDS → сожжём rate-limit. Cм. memory [operator-dns-flip-verify-domain-before-cutover].
challenge упадёт на RUVDS (DNS ещё там), сожжём LE rate-limit → задержка cert на реальном cutover'е. - **НЕ путать домены** — на этой сессии оператор флипнул emspb, НЕ labtools (был запланирован). Всегда external-resolve перед PUT traefik-rule.
- **НЕ выводить RUVDS IIS labtools из эксплуатации** (директива оператора 2026-07-01) — это rollback-путь. - **НЕ выводить RUVDS IIS** (labtools/emspb) — rollback-путь.
- **НЕ флипать DNS самим** — это делает хозяин домена. - **НЕ флипать DNS самим** — это оператор.
- **Автопуш в ЭТОЙ сессии НЕ выдавался** — коммиты локальные, не запушены; на старте следующей — ask-mode (project-discipline Rule 4). - Build snolla-образов — НА VDS из чистого `git archive`, push с VDS (registry локален).
- Build-канал labtools: собирать НА VDS из чистого `git archive` (без `config/default.json`), push с VDS (registry локален).
- `labtools.pro` — не трогать в рамках этой таски. ## Autopush
- Оператор выдал grant «пуш разрешаю» на этой сессии (2026-07-02). Session-end сбрасывает в ask-mode.
## Memory updates за сессию ## Memory updates за сессию
- (нет на этом раунде — всё в STATUS.md + рунбуке `labtools-vds-deploy-runbook.md`) - Заведена `operator-dns-flip-verify-domain-before-cutover` (verify which domain externally before touching traefik Host rule).