This commit is contained in:
“Naeel” 2026-03-09 20:35:01 +04:00
parent 9293985003
commit 27a64afaec
7 changed files with 28 additions and 7 deletions

5
.gitignore vendored
View File

@ -8,6 +8,7 @@
*.dll
*.so
*.dylib
*.sh
bin
testbin/*
hack/local.env
@ -40,3 +41,7 @@ terraform/provider/build/
# Локальные артефакты упаковки функций
**/dist/
# Локальные тестовые файлы и логи прогонов
**/*.tf.disabled
.test-logs/

View File

@ -1,5 +1,23 @@
# Примеры sless
## Что такое sless
**sless** — платформа для запуска serverless-функций в Kubernetes-кластере.
Код на Python или Node.js загружается в платформу, которая собирает Docker-образ, деплоит его в кластер и публикует HTTP-эндпоинт. Всё управляется через Terraform.
### Ресурсы
| Ресурс | Что делает |
|---|---|
| `sless_function` | Загружает код и собирает Docker-образ. Сама по себе не принимает запросы — нужен триггер или джоб |
| `sless_trigger` | Публикует функцию — либо как HTTP-эндпоинт, либо по расписанию (cron) |
| `sless_job` | Запускает функцию один раз (например, для инициализации БД) и ждёт результата |
**Типичный сценарий:** `sless_function` с кодом + `sless_trigger` с `type = "http"` → публичный URL вида `https://sless-api.kube5s.ru/fn/default/имя-функции`.
---
Примеры показывают различные сценарии использования serverless функций через Terraform провайдер `terra.k8c.ru/naeel/sless`.
## Требования
@ -14,6 +32,7 @@
```hcl
provider "sless" {
endpoint = "https://sless-api.kube5s.ru"
token = "dev-token-change-me"
}
```

View File

@ -8,7 +8,7 @@ terraform {
required_providers {
sless = {
source = "terra.k8c.ru/naeel/sless"
version = "~> 0.1.10"
version = "~> 0.1.11"
}
}
}

View File

@ -1,2 +0,0 @@
# Временный файл для негативных тестов — не применяется через terraform
# Тесты запускаются вручную с временным переименованием в .tf

View File

@ -14,13 +14,12 @@ terraform {
# Провайдер для управления serverless функциями через sless API
sless = {
source = "terra.k8c.ru/naeel/sless"
version = "~> 0.1.10"
version = "~> 0.1.11"
}
}
}
# sless провайдер подключается к API кластера.
# В продакшне token следует передавать через TF_VAR или secrets.
provider "sless" {
endpoint = "https://sless-api.kube5s.ru"
token = "dev-token-change-me"

View File

@ -19,7 +19,7 @@ terraform {
required_providers {
sless = {
source = "terra.k8c.ru/naeel/sless"
version = "~> 0.1.10"
version = "~> 0.1.11"
}
}
}

View File

@ -18,7 +18,7 @@ terraform {
required_providers {
sless = {
source = "terra.k8c.ru/naeel/sless"
version = "~> 0.1.10"
version = "~> 0.1.11"
}
}
}