# Прогресс разработки Последнее обновление: 2026-03-07 ## Статусы: ✅ готово | 🔄 в процессе | ⏳ не начато --- ## v1 — Базовый сервис ### Код | # | Компонент | Статус | Заметки | |---|-----------|--------|---------| | 1 | Структура проекта, operator-sdk init | ✅ | module: gitea-naeel.giteak8s.services.ngcloud.ru/naeel/sless | | 2 | CRD types: Function, Trigger | ✅ | api/v1alpha1/, zz_generated.deepcopy.go | | 3 | internal/config | ✅ | config.go, Load() из env vars, добавлены IngressHost + APIToken | | 4 | Миграции PostgreSQL | ✅ | migrations/001_initial.sql — таблица invocations | | 5 | internal/storage/postgres | ✅ | store.go: SaveInvocation, ListInvocations, RunMigrations | | 6 | internal/storage/s3 | ✅ | client.go: Upload, Download, Delete, EnsureBucket (Ceph S3) | | 7 | internal/builder | ✅ | builder.go: kaniko Jobs для сборки образов функций | | 8 | controllers/function_controller.go | ✅ | Pending→Building(kaniko)→Ready/Failed, Deployment, finalizer | | 9 | controllers/trigger_controller.go | ✅ | HTTP→Service+Ingress, Cron→CronJob, finalizer | | 10 | internal/api/router.go | ✅ | gorilla/mux, /v1/namespaces/{ns}/... | | 11 | internal/api/handler/ | ✅ | functions.go, triggers.go, invocations.go, handler.go (slog) | | 12 | internal/api/middleware/ | ✅ | auth.go (Bearer token), logging.go (slog) | | 13 | main.go | ✅ | operator manager + HTTP сервер параллельно, wire всех зависимостей | ### Кластер (namespace: sless) | # | Ресурс | Статус | Заметки | |---|--------|--------|---------| | 1 | namespace sless | ✅ | создан | | 2 | CRD functions.sless.kube5s.ru | ✅ | установлен из config/crd/bases/ | | 3 | CRD triggers.sless.kube5s.ru | ✅ | установлен из config/crd/bases/ | | 4 | ServiceAccount sless-operator | ✅ | deployments/k8s/rbac.yaml | | 5 | ClusterRole + ClusterRoleBinding | ✅ | deployments/k8s/rbac.yaml | | 6 | PostgreSQL Deployment + Service | ✅ | deployments/k8s/postgres.yaml, Running | | 7 | Secret postgres-secret | ✅ | в namespace sless | ### Что ещё не сделано | # | Компонент | Статус | Заметки | |---|-----------|--------|---------| | 1 | Запуск оператора локально | ⏳ | source hack/local.env && go run main.go | | 2 | Проверка подключения к Ceph S3 из кластера | ⏳ | endpoint: s3.msk-1.ngcloud.ru | | 3 | Endpoint загрузки кода функции (upload zip) | ⏳ | POST /v1/…/upload | | 4 | deployments/k8s/operator.yaml | ⏳ | Deployment оператора в кластере | | 5 | hack/test.sh — curl smoke-тесты | ⏳ | | | 6 | Terraform provider — ресурс serverless_function | ⏳ | отдельная репа | --- ## v2 — Расширения | # | Компонент | Статус | Заметки | |---|-----------|--------|---------| | 1 | RabbitMQ event triggers | ⏳ | | | 2 | Облачный auth (nubes.ru token validation) | ⏳ | v1 — статический токен | | 3 | Метрики → Victoria Metrics | ⏳ | | | 4 | Managed PostgreSQL от провайдера | ⏳ | сейчас postgres в k8s | | 5 | Pre-warm для cron триггеров | ⏳ | TriggerSpec.PreWarmSeconds — поле есть, логика не реализована |