docs: ADR-009/010, карта деплоя, деплой-памятка фронта, задачи фронтендеру
Приёмка и починка 15.09.2026: - ADR-009: один бэк на оба домена — прод-домен smart-updown.binom.pw переведён на тот же TS-шлюз (:8895), что и testfront; Kotlin-бэк (3NWEK) выключен обратимо. Разобраны расхождения API игры и шлюза (их должны править во фронте). - ADR-010: две ловушки деплоя фронта — (1) чарт рендерит только path '/', поэтому helm-релиз сносит /api,/ws → вынесены в отдельный ingress smart-updown-api вне helm; (2) захардкоженный values.image.tag бьёт Chart.AppVersion → helm upgrade НЕ поднимает новый образ (новый RS не создаётся), на домене остаётся старый билд при 'Upgrade complete'. Приведена правильная команда (--reuse-values --set image.tag=<N>) и способ ПРОВЕРКИ по кубу и домену, а не по helm. Отмечен остаточный риск: Unity-ассеты immutable 7 суток при неизменяемых именах файлов → кэш браузера держит старый билд. - README: карта деплоя (кто где живёт), статус проекта на 15.09, актуализирован блок безопасности (SEC-16 — утечка SOL, блокер перед mainnet), Kotlin-бэк помечен выключенным, добавлен TS-шлюз как боевой бэк, ссылки на tools/ и k8s/. - TASKS.md: деплой-памятка фронта + задачи фронтендеру (убрать image.tag, хэш в именах ассетов, привести API игры к контракту шлюза).
This commit is contained in:
@@ -106,6 +106,28 @@
|
||||
- Кран зачисляет на цепь с лагом **8–13 с** (шлюз рапортует мгновенно) — отсюда ложный симптом
|
||||
«SOL не обновился».
|
||||
|
||||
**Деплой-памятка фронта игры (`fun-game-front2`) — прочитать перед каждым релизом:**
|
||||
```bash
|
||||
helm repo update binom
|
||||
helm upgrade fun-game-front2 binom/fun-game-front2 -n game \
|
||||
--reuse-values --set image.tag=<N> --wait --timeout 4m # <N> = тег релиза, НЕ опираться на чарт
|
||||
```
|
||||
⚠️ Без явного `--set image.tag` образ НЕ обновится: в `helm/values.yaml` захардкожен `image.tag`,
|
||||
он перебивает `Chart.AppVersion` → спека не меняется, новый под не создаётся, на домене остаётся
|
||||
старый билд при «Upgrade complete» в helm. Полный разбор — `docs/DECISIONS.md` (ADR-010).
|
||||
Проверять по кубу/домену: `kubectl get pod -n game -l app.kubernetes.io/name=fun-game-front2 \
|
||||
-o custom-columns='NAME:.metadata.name,IMAGE:.spec.containers[0].image,CREATED:.metadata.creationTimestamp'`.
|
||||
|
||||
**Задачи фронтендеру (отдать во фронт-репо `fun-game-front2`):**
|
||||
- [ ] **Убрать `image.tag` из `helm/values.yaml`** и опираться только на `Chart.AppVersion`
|
||||
(в CI он уже подставляется из тега релиза) — тогда `helm upgrade` перестанет требовать `--set`.
|
||||
- [ ] **Хэш содержимого в имени ассетов** (`WebGL.<hash>.data/.wasm/.framework.js`) на шаге сборки:
|
||||
сейчас nginx отдаёт ассеты как `immutable, max-age=604800` при НЕизменяемых именах, поэтому
|
||||
у уже игравших игроков до 7 суток держится старый билд в кэше браузера.
|
||||
- [ ] **Привести API игры к контракту TS-шлюза** (`docs/API шлюза` / `test-front/API.md`):
|
||||
тело ставки `{address, side, amountUnits}`; поля `minAmount`/`maxAmount` — строкой; `GET /api/bet/{id}`
|
||||
у шлюза отсутствует (см. ADR-009).
|
||||
|
||||
**Фича на будущее — «ждать, если цена не изменилась» (НЕ ДОДЕЛАНА):**
|
||||
- [ ] **TODO** `[pump.meta]` Если по сделанной ставке цена на момент экспирации **не изменилась**
|
||||
(`exit == entry`, ничья), нужно **подождать ещё 15 секунд** и попробовать взять цену заново —
|
||||
|
||||
Reference in New Issue
Block a user