diff --git a/.gitignore b/.gitignore index ad1391c..cbd6350 100644 --- a/.gitignore +++ b/.gitignore @@ -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/ diff --git a/README.md b/README.md index 5bf4e0e..afe6564 100644 --- a/README.md +++ b/README.md @@ -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" } ``` diff --git a/hello-node/main.tf b/hello-node/main.tf index cfb00b4..15b7bb1 100644 --- a/hello-node/main.tf +++ b/hello-node/main.tf @@ -8,7 +8,7 @@ terraform { required_providers { sless = { source = "terra.k8c.ru/naeel/sless" - version = "~> 0.1.10" + version = "~> 0.1.11" } } } diff --git a/hello-node/test_invalid.tf.disabled b/hello-node/test_invalid.tf.disabled deleted file mode 100644 index 7c5e5eb..0000000 --- a/hello-node/test_invalid.tf.disabled +++ /dev/null @@ -1,2 +0,0 @@ -# Временный файл для негативных тестов — не применяется через terraform -# Тесты запускаются вручную с временным переименованием в .tf diff --git a/notes-python/main.tf b/notes-python/main.tf index 505e104..de76386 100644 --- a/notes-python/main.tf +++ b/notes-python/main.tf @@ -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" diff --git a/simple-node/main.tf b/simple-node/main.tf index 9cb2843..a4cda22 100644 --- a/simple-node/main.tf +++ b/simple-node/main.tf @@ -19,7 +19,7 @@ terraform { required_providers { sless = { source = "terra.k8c.ru/naeel/sless" - version = "~> 0.1.10" + version = "~> 0.1.11" } } } diff --git a/simple-python/main.tf b/simple-python/main.tf index 5032776..75a1e6a 100644 --- a/simple-python/main.tf +++ b/simple-python/main.tf @@ -18,7 +18,7 @@ terraform { required_providers { sless = { source = "terra.k8c.ru/naeel/sless" - version = "~> 0.1.10" + version = "~> 0.1.11" } } }