docs: аудит вмешательства старого IoT — k8s-зависимости только в 3 хендлерах; Dockerfile помечен ЛЕГАСИ; правило монолита зафиксировано

This commit is contained in:
“Naeel”
2026-08-16 09:44:45 +04:00
parent eb7d312d89
commit bf32394def
3 changed files with 61 additions and 0 deletions
+41
View File
@@ -440,3 +440,44 @@ deployment-v0.2.3; 9 вопросов; формат «Ответ/Рекомен
**Актуальные файлы (НЕ легаси):** `HISTORY/`, `doc/sqs-integration.md`,
`ws-probe/`, Go-код `cmd/mqtt-bridge/`, `cmd/sqs-consumer/`, `internal/`
(переиспользуется в монолите).
---
## 13. Аудит вмешательства старого IoT + план Фазы 1 (16.08)
**Команда пользователя:** «НЕ ДОПУСКАТЬ, чтобы старые данные и файлы от прежнего
IoT вмешивались в проект. ПРОВЕРЬ.»
**Результаты аудита (факты):**
1. **Код:** k8s-зависимости есть ТОЛЬКО в `internal/api/handler/`:
- `handler.go` — controller-runtime client, runtime;
- `iot_device_handler.go` — corev1, apimachinery, metav1, CRD-типы
`iotv1alpha1` (CRUD устройств через K8s + MQTT-auth через Secrets);
- `iot_admin_stats_handler.go` — corev1, controller-runtime.
Всё остальное ЧИСТО: `router.go`, `middleware/`, UI-embeds, `iotpg/`,
`cmd/mqtt-bridge/`, `cmd/sqs-consumer/`.
2. **go.mod:** тяжёлые k8s-депы (k8s.io/api, apimachinery, client-go v0.26.0,
controller-runtime v0.14.1 + ~40 indirect) — держатся только из-за этих
трёх файлов. После переписывания хендлеров — `go mod tidy` их уберёт.
3. **Dockerfile (корень)** — собирал 3 старых бинарника; НЕ был помечен.
→ помечен ЛЕГАСИ (новый монолит получит собственный Dockerfile).
4. **CI:** в `.github/` только правила (copilot-instructions, pravila) —
старых пайплайнов нет. `bin/` в git не отслеживается.
5. **Данные:** старый shared-sqs (qu.kube5s.ru) удалён полностью — старых
очередей в новом shared-sqs нет. В managed PG остались старые тестовые
tenant-DB (изолированы; очистка — только по отдельной команде). Старые
k8s Secrets новым кодом не читаются.
**Правило для монолита (зафиксировано):**
- Новый код НЕ импортирует `controllers/`, `api/v1alpha1/`, k8s-клиент.
- Хендлеры устройств переписываются на PG (`iot_devices`), MQTT-auth — SQL.
- `LEGACY.md` дополнен разделом аудита.
**План Фазы 1 (согласован в обсуждении, ждёт «делай»):**
1. Новый `cmd/iot-service/main.go` + структура по пакетам (config, api, bridge,
consumer, storage/iotpg) — много мелких файлов, без god-файлов.
2. Хендлеры устройств/админки — на PG вместо K8s; authTestMode=false.
3. Bridge+consumer — переиспользуются как есть (MQTT-подписка, SQS long-poll).
4. Новый Dockerfile (один бинарник), образ `naeel/iot-service` (имя — на
подтверждении пользователя), env-дефолты вшиты, секреты — в deck.
5. Сборка → пуш latest → пользователь создаёт контейнер в deck-UI.