doc: план для Sonnet (sqs-operator deploy), обновлён progress.md

This commit is contained in:
Naeel
2026-04-07 14:30:34 +03:00
parent 66dcd99465
commit 52e9511d50
2 changed files with 330 additions and 1 deletions
+54 -1
View File
@@ -1,6 +1,59 @@
# Прогресс разработки
Последнее обновление: 2026-04-06 21:00 МСК
Последнее обновление: 2026-04-07 14:30 МСК
---
## 2026-04-07 — SQS Operator: переделка через Operator SDK
### Цель
Managed SQS-совместимый сервис (ElasticMQ per-tenant) — Kubernetes оператор.
### Что сделано (Opus)
1. ✅ Установлен operator-sdk v1.37.0 на VM
2.`operator-sdk init` — scaffold (Makefile, Dockerfile, config/, cmd/, PROJECT)
3.`operator-sdk create api --kind QueueService --group sqs --version v1alpha1`
4. ✅ CRD types заполнены — QueueServiceSpec (TenantID, MemoryMB, StorageMB, Persistence), QueueServiceStatus (Phase, Endpoint, SecretName, Message, ReadyAt)
5. ✅ Reconciler перенесён из ручного кода в `internal/controller/` (provision, checkReady, ensureHealthy, handleDeletion)
6. ✅ controller-gen обновлён до v0.17.0 (совместимость с Go 1.26.1)
7.`make generate` — deepcopy автогенерирован
8.`make manifests` — CRD YAML + RBAC ClusterRole из маркеров
9.`make build` — bin/manager 55MB, компиляция без ошибок
10. ✅ Коммит `66dcd99` + push
### Что осталось (Sonnet)
- ⬜ Исправить Dockerfile (не копирует internal/config/ и internal/elasticmq/)
- ⬜ Docker build + push в pearlharbor registry
- ⬜ Обновить kubeconfig (протух)
- ⬜ make install (CRD в кластер)
- ⬜ make deploy (оператор в кластер) + env SQS_EXTERNAL_HOST + imagePullSecrets
- ⬜ Создать тестовый QueueService CR
- ⬜ Smoke test SQS API через curl
### Ключевые решения
- Модель: инстанс на тенанта (ElasticMQ Native, ~30MB idle)
- Routing: path-based `sqs.kube5s.ru/sqs/{tenantId}`
- DNS: sqs.kube5s.ru → 185.247.187.147 (создан)
- Namespace: sless-fn-{tenantId} (существующий)
- Persistence: H2 на PVC
### Структура sqs-operator/
```
sqs-operator/
├── api/v1alpha1/ ← CRD types + deepcopy
├── cmd/main.go ← entry point
├── config/ ← kustomize (CRD, RBAC, manager)
├── internal/
│ ├── config/ ← env config
│ ├── controller/ ← reconciler
│ └── elasticmq/ ← HOCON config + credentials
├── Makefile ← operator-sdk toolchain
├── Dockerfile ← multi-stage (NEEDS FIX)
└── PROJECT ← metadata
```
### План для Sonnet
Подробный план: `doc/sqs-operator-sonnet-plan.md` — 8 этапов с командами и проверками.
---