docs: update for v0.1.22 — Builder SoC, immediate fixes, unit tests

This commit is contained in:
“Naeel”
2026-03-11 09:42:12 +04:00
parent 5f3e5a6f65
commit 4a4c2f4d2d
2 changed files with 30 additions and 8 deletions
+5 -3
View File
@@ -1,6 +1,6 @@
# Архитектура системы # Архитектура системы
Последнее обновление: 2026-03-11 Последнее обновление: 2026-03-11 (v0.1.22)
## Общее описание ## Общее описание
@@ -111,7 +111,9 @@ sless/
| | +-- middleware/ | | +-- middleware/
| | |-- auth.go JWT validation (struct + sub + exp, подпись не проверяется) | | |-- auth.go JWT validation (struct + sub + exp, подпись не проверяется)
| | +-- logging.go slog request logger | | +-- 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 | |-- config/config.go Load() из env vars
| +-- storage/ | +-- storage/
| |-- postgres/store.go SaveInvocation, ListInvocations, RunMigrations | |-- 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 | | terra.k8c.ru/naeel/sless провайдер | v0.1.13 |
| naeel/sless-runtime-python3.11 | v0.1.1 | | naeel/sless-runtime-python3.11 | v0.1.1 |
| naeel/sless-runtime-nodejs20 | v0.1.2 | | naeel/sless-runtime-nodejs20 | v0.1.2 |
+25 -5
View File
@@ -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 | Средний | | 1 | `ensureRegistrySecret` в FunctionReconciler — cross-namespace инфра операция | Низкий |
| 2 | `ensureRegistrySecret` в FunctionReconciler — cross-namespace инфра операция | Низкий | | 2 | `invocations.go` — 501 stub, PG подключён но endpoint не реализован | Средний |
| 3 | `invocations.go` — 501 stub, PG подключён но endpoint не реализован | Средний | | 3 | LLM-валидация кода при upload | Средний (решение задизайнено в decisions/log.md) |
| 4 | LLM-валидация кода при upload | Средний (решение задизайнено в decisions/log.md) | | 4 | JWKS подпись (verifySignature) — stub есть, логика не реализована | Средний (ждёт JWKS endpoint от nubes) |
| 5 | Scale-to-zero через KEDA HTTP Add-on | Низкий (v2) | | 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) | | 7 | RabbitMQ event triggers | Низкий (v2) |
| 8 | Метрики → Victoria Metrics | Низкий | | 8 | Метрики → Victoria Metrics | Низкий |