docs: аудит вмешательства старого IoT — k8s-зависимости только в 3 хендлерах; Dockerfile помечен ЛЕГАСИ; правило монолита зафиксировано
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user