docs: HISTORY — подробная сводка развёрнутого стека, правила платформы, план хвостов

This commit is contained in:
“Naeel”
2026-08-16 15:11:13 +04:00
parent 31a7db18b2
commit 3ec8fe86c2
+49
View File
@@ -798,3 +798,52 @@ consumer → PG → чтение через /v1/.../telemetry.
- Процедура для чужого кластера без kubectl: PG-auth в EMQX (вместо HTTP),
порядок деплоя EMQX→iot-service, UUID из консоли deck, DSN с sslmode=require,
роль с CREATEROLE/CREATEDB, один EXPOSE-порт в образе EMQX.
---
## 25. ПОДРОБНАЯ СВОДКА: что развёрнуто на платформе (16.08)
### Контейнеры (realm iot-naeel, кластер iot-naeel)
| Компонент | ns (instanceUid) | Домен | Образ |
|---|---|---|---|
| EMQX | `2fdd9658-4995-494f-892a-d88dda7da1ee` | exqx.containerk8s.dev.nubes.ru | naeel/iot-emqx:v0.2.0 |
| iot-service | `4504e05b-7b7f-4689-a61f-fbf6234dd0ed` | iot.containerk8s.dev.nubes.ru | naeel/iot-service:v0.1.0 |
| shared-sqs | `f1ffb134-7d16-45bd-8bef-69f6ec8ab33c` | sqs.containerk8s.dev.nubes.ru | (чужой) |
| ws-probe (тест) | `2d9b96ff-…` | testiot.containerk8s.dev.nubes.ru | (тестовый) |
### Managed-сервисы
- PostgreSQL: инстанс `postgresqlk8s`, instanceUid `509145c3-ba71-4687-a084-d9dcbc88d3d2`,
internalMaster `postgresqlk8s-master.509145c3-….svc.cluster.local:5432`.
Роль `iot_service` (CREATEROLE, CREATEDB), БД `iotdb`. DSN:
`postgresql://iot_service:<пароль>@…:5432/iotdb?sslmode=require` (SSL обязателен!).
- shared-sqs: тенант `t-fec713a719ad0b33`, очередь `iot-telemetry`,
внутренний endpoint `containerk8s.f1ffb134-….svc.cluster.local:4100`.
### Env iot-service (заданы/пропатчены)
IOT_PG_DSN (sslmode=require), SQS_ACCESS_KEY, SQS_SECRET_KEY, MQTT_USERNAME,
MQTT_PASSWORD, ADMIN_STATS_TOKEN, MQTT_HOST=containerk8s.2fdd9658-….svc.cluster.local,
AUTH_TEST_MODE=true (ТЕСТ! вернуть false).
### Env EMQX (пропатчены kubectl)
EMQX_AUTHENTICATION__1__URL=http://containerk8s.4504e05b-….svc.cluster.local:9090/internal/mqtt/auth
EMQX_AUTHORIZATION__SOURCES__1__URL=http://containerk8s.4504e05b-….svc.cluster.local:9090/internal/mqtt/acl
EMQX_LOG__CONSOLE_HANDLER__LEVEL=debug (диагностика)
### Правила платформы (выстраданы)
1. Путь к образу в deck фиксируется при создании → только latest + redeploy;
зеркало кэширует latest → в НАШЕМ кластере kubectl set image уникальным тегом.
2. Env в deck фиксируются при создании (формат JSON в форме — выяснить!).
3. Порт приложения берётся из EXPOSE образа; поле порта в форме отсутствует →
образ обязан иметь РОВНО один EXPOSE.
4. Загрузка EMQX на CPU-квоте 500m — 5–10 мин (не зависание!); dashboard
падает с таймаутами; для deck задавать CPU ≥1000m.
5. PG требует SSL: pg_hba no encryption → sslmode=require.
### Хвосты (текущий план работ)
1. AUTH_TEST_MODE=false.
2. EMQX v0.2.1: убрать dashboard из конфига; CPU-квота (наш кластер — patch,
deck — рекомендация).
3. PG-auth в EMQX (без kubectl для чужого кластера): authentication postgres
(devices + bridge) + authorization postgres + http-фолбэк; монолит создаёт
bridge-строку в iot_devices (EnsureBridgeDevice).
4. Процедура деплоя для чужого кластера (документ).