diff --git a/doc/architecture/overview.md b/doc/architecture/overview.md index 147b5df..05bd707 100644 --- a/doc/architecture/overview.md +++ b/doc/architecture/overview.md @@ -1,6 +1,6 @@ # Архитектура системы -Последнее обновление: 2026-03-11 +Последнее обновление: 2026-03-11 (v0.1.22) ## Общее описание @@ -111,7 +111,9 @@ sless/ | | +-- middleware/ | | |-- auth.go JWT validation (struct + sub + exp, подпись не проверяется) | | +-- logging.go slog request logger -| |-- builder/builder.go kaniko Job lifecycle (Build, JobStatus, Cleanup) +| |-- builder/ +| | |-- builder.go kaniko Job lifecycle (Build, JobStatus, Cleanup) +| | +-- context.go PrepareContext: zip+runtime → tar.gz+Dockerfile для kaniko | |-- config/config.go Load() из env vars | +-- storage/ | |-- postgres/store.go SaveInvocation, ListInvocations, RunMigrations @@ -157,7 +159,7 @@ API endpoint: https://sless-api.kube5s.ru | Артефакт | Тег/Версия | |---------|-----------| -| naeel/sless-operator | v0.1.21 | +| naeel/sless-operator | v0.1.22 | | terra.k8c.ru/naeel/sless провайдер | v0.1.13 | | naeel/sless-runtime-python3.11 | v0.1.1 | | naeel/sless-runtime-nodejs20 | v0.1.2 | diff --git a/doc/progress.md b/doc/progress.md index f2f74bc..cae6252 100644 --- a/doc/progress.md +++ b/doc/progress.md @@ -155,15 +155,35 @@ --- +## 2026-03-11 — Opus review: fixes + Builder SoC + unit tests (v0.1.22) + +| # | Задача | Статус | Заметки | +|---|--------|--------|---------| +| 1 | CronJob перемещён в deployNS (`sless-fn-{userNS}`) | ✅ | NetworkPolicy-ready | +| 2 | curl:8.5.0 (pin вместо :latest) | ✅ | стабильный образ | +| 3 | sort env vars в buildDeployment | ✅ | нет лишних rollout'ов при reconcile | +| 4 | cleanup kaniko Job в handleDeletion | ✅ | при удалении Function во время Building | +| 5 | hop-by-hop headers отфильтрованы в /fn/ прокси | ✅ | RFC 2616 §13.5.1, 8 заголовков | +| 6 | SLESS_API_TOKEN — убран required | ✅ | был dead code (auth через JWT) | +| 7 | Builder SoC: `internal/builder/context.go` | ✅ | PrepareContext публичный API, upload.go 200→60 LOC | +| 8 | JWKS insertion point stub в auth.go | ✅ | `verifySignature()` заготовка для v2 | +| 9 | Unit tests: 9 тестов, все PASS | ✅ | controllers×2, handler×3, builder×4 | +| 10 | operator v0.1.22 задеплоен | ✅ | `kubectl rollout status` — complete | +| 11 | Коммиты e761439 + 18f25e7 | ✅ | ветка feat/namespace-per-user | + +**Последний коммит:** 18f25e7 + +--- + ## Остаток технического долга (не блокирует) | # | Что | Приоритет | |---|-----|-----------| -| 1 | `upload.go`: generateDockerfile/zipToTarGz — builder logic в HTTP handler | Средний | -| 2 | `ensureRegistrySecret` в FunctionReconciler — cross-namespace инфра операция | Низкий | -| 3 | `invocations.go` — 501 stub, PG подключён но endpoint не реализован | Средний | -| 4 | LLM-валидация кода при upload | Средний (решение задизайнено в decisions/log.md) | +| 1 | `ensureRegistrySecret` в FunctionReconciler — cross-namespace инфра операция | Низкий | +| 2 | `invocations.go` — 501 stub, PG подключён но endpoint не реализован | Средний | +| 3 | LLM-валидация кода при upload | Средний (решение задизайнено в decisions/log.md) | +| 4 | JWKS подпись (verifySignature) — stub есть, логика не реализована | Средний (ждёт JWKS endpoint от nubes) | | 5 | Scale-to-zero через KEDA HTTP Add-on | Низкий (v2) | -| 6 | replicas field в FunctionSpec | Низкий (v1.1) | +| 6 | `replicas` field в FunctionSpec | Низкий (v1.1) | | 7 | RabbitMQ event triggers | Низкий (v2) | | 8 | Метрики → Victoria Metrics | Низкий |