doc: обновлена документация — дополнения к архитектуре, деплою, прогрессу
- architecture/overview.md: добавлена актуальная схема (SQS, managed PG) - deployment.md: добавлена процедура деплоя в iot-naeel - progress.md: добавлен блок 2026-04-12 (Kafka→SQS, деплой) - api/endpoints.md: добавлен актуальный формат /iot-admin/stats - thinking/2026-04-12.md: дописан ход реализации и деплоя - copilot-instructions.md: добавлено правило «документацию не стирать» Старая документация (Kafka, RabbitMQ) сохранена как база знаний.
This commit is contained in:
@@ -35,3 +35,53 @@
|
||||
- [ ] Деплой в кластер
|
||||
- [ ] E2E тест: создание устройства → MQTT → Kafka → Postgres → API
|
||||
- [ ] Убрать IoT-код из sless (опционально, после подтверждения что всё работает)
|
||||
|
||||
---
|
||||
|
||||
## 2026-04-12: Замена Kafka → shared-SQS + деплой в новый кластер
|
||||
|
||||
### Выполнено
|
||||
- [x] Создана ветка `feature/replace-kafka-with-sqs`
|
||||
- [x] Документировано решение: `doc/decisions/2026-04-12-replace-kafka-with-sqs.md`
|
||||
- [x] **mqtt-bridge** (`cmd/mqtt-bridge/main.go`): Kafka Writer → AWS SDK SQS SendMessage
|
||||
- [x] **sqs-consumer** (`cmd/sqs-consumer/main.go`): новый — заменяет kafka-consumer, SQS ReceiveMessage → Postgres
|
||||
- [x] **kafka-consumer** (`cmd/kafka-consumer/`): удалён из кода
|
||||
- [x] **admin stats** (`internal/api/handler/iot_admin_stats_handler.go`): Kafka lag → SQS GetQueueAttributes
|
||||
- [x] **handler.go**: убрано поле KafkaBrokers
|
||||
- [x] **iot-operator/main.go**: убрана передача KAFKA_BROKERS
|
||||
- [x] go.mod: убран `segmentio/kafka-go`, добавлен `aws-sdk-go-v2` (v1.41.5 + sqs v1.42.25)
|
||||
- [x] Dockerfile: kafka-consumer → sqs-consumer
|
||||
- [x] Makefile: build-consumer → sqs-consumer
|
||||
- [x] .gitignore: исправлен баг (паттерны без `/` игнорировали `cmd/` директории)
|
||||
- [x] `go build ./...` проходит на ВМ
|
||||
- [x] Коммит и пуш в ветку
|
||||
|
||||
### Деплой в кластер iot-naeel (новый кластер)
|
||||
- [x] shared-SQS: создан tenant `iot-service` (t-96afe7e9f781f6ca), очередь `iot-telemetry`
|
||||
- [x] Namespace `sless` создан
|
||||
- [x] Secret `iot-sqs-credentials` создан
|
||||
- [x] Secret `iot-bridge-credentials` создан
|
||||
- [x] Postgres: переключён на managed PG17 (тот же что SQS billing)
|
||||
- [x] Secret `iot-postgres-secret` создан (DSN → managed PG)
|
||||
- [x] Docker: собран и запушен `naeel/iot-operator:v0.2.0` в Docker Hub
|
||||
- [x] Deployment YAML: обновлены image на Docker Hub, убраны imagePullSecrets
|
||||
- [x] EMQX: задеплоен (emqx.yaml + emqx-ws-ingress.yaml, адаптирован из sless)
|
||||
- [x] iot-operator: задеплоен (новый iot-operator.yaml с RBAC)
|
||||
- [x] CRD `iotdevices.iot.kube5s.ru` установлен
|
||||
- [x] iot-mqtt-bridge: задеплоен, Running
|
||||
- [x] iot-sqs-consumer: задеплоен, Running — подключился к PG и SQS
|
||||
- [x] cert-manager: выпускает TLS для iot.kube5s.ru
|
||||
- [x] Коммит и пуш
|
||||
|
||||
### Что работает
|
||||
- Все 4 пода Running 1/1
|
||||
- iot-operator: controller стартовал, MQTT auth/acl обрабатывает запросы от EMQX
|
||||
- sqs-consumer: подключился к Postgres и SQS, polling loop запущен
|
||||
- mqtt-bridge: подключён к EMQX и SQS, SQS queue resolved
|
||||
- EMQX: MQTT :1883, WS :8083, dashboard :18083
|
||||
|
||||
### Следующие шаги
|
||||
- [ ] E2E тест: создание устройства → MQTT → SQS → Postgres → API
|
||||
- [ ] Нагрузочный тест
|
||||
- [ ] Мерж ветки в master
|
||||
- [ ] Убрать IoT-код из sless (опционально)
|
||||
|
||||
Reference in New Issue
Block a user