docs: аудит вмешательства старого IoT — k8s-зависимости только в 3 хендлерах; Dockerfile помечен ЛЕГАСИ; правило монолита зафиксировано
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
# ⛔⛔⛔ ЛЕГАСИ (2026-08-16) — СТАРЫЙ IoT (3 бинарника, образ naeel/iot-operator). НЕ ИСПОЛЬЗОВАТЬ.
|
||||
# Новый монолит получит собственный Dockerfile. Актуальное: HISTORY/2026-08-16-session-log.md
|
||||
|
||||
# Создано: 2026-04-12
|
||||
# Изменено: 2026-04-12 (kafka-consumer → sqs-consumer)
|
||||
# Dockerfile для IoT managed service.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -15,11 +15,28 @@
|
||||
- `config/crd/` — CRD IoTDevice
|
||||
- `cmd/iot-operator/`, `controllers/`, `api/v1alpha1/` — оператор (CRD-контроллер);
|
||||
в новой архитектуре не используется (замена — таблица `iot_devices` в PG)
|
||||
- `Dockerfile` (корень) — собирает 3 старых бинарника, образ naeel/iot-operator
|
||||
- `doc/` — все документы, кроме `doc/sqs-integration.md`
|
||||
- `examples/` — старые примеры (RabbitMQ/serverless)
|
||||
- `2026-08-13-migration-to-managed.md` — СТАРЫЙ план миграции (Node.js) — ОТМЕНЁН
|
||||
- `Makefile` — старые цели (k8s deploy/install-crd) не использовать
|
||||
|
||||
## Аудит вмешательства старого IoT (2026-08-16, проверено)
|
||||
|
||||
- **Код:** k8s-зависимости есть ТОЛЬКО в `internal/api/handler/` (handler.go,
|
||||
iot_device_handler.go, iot_admin_stats_handler.go — controller-runtime,
|
||||
corev1, CRD-типы). Всё остальное чисто: router, middleware, UI-embeds,
|
||||
`internal/storage/iotpg/`, `cmd/mqtt-bridge/`, `cmd/sqs-consumer/`.
|
||||
- **Правило для монолита:** новый код НЕ импортирует `controllers/`,
|
||||
`api/v1alpha1/`, k8s-клиент. Хендлеры устройств переписываются на
|
||||
PG-хранилище (`iot_devices`); после этого k8s-депы удаляются из go.mod.
|
||||
- **Данные:** старый shared-sqs (qu.kube5s.ru) удалён полностью — старых
|
||||
очередей нет. В managed PG остались старые тестовые tenant-DB (изолированы,
|
||||
на новый код не влияют; очистка — только по отдельной команде).
|
||||
Старые k8s Secrets не читаются (новый код без k8s-клиента).
|
||||
- **Артефакты:** `bin/` в git не отслеживается; CI (.github/) содержит только
|
||||
правила — старых пайплайнов нет.
|
||||
|
||||
## НЕ легаси (актуально)
|
||||
|
||||
- `HISTORY/2026-08-16-session-log.md`
|
||||
|
||||
Reference in New Issue
Block a user