From 0aec6e286ad848a32bd0d51e6e8816d1e0ab26ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Wed, 11 Mar 2026 07:51:06 +0400 Subject: [PATCH] feat: JWT auth in operator + hello-node example updated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - operator: auth middleware теперь валидирует JWT (sub+exp), не статический токен - operator: ensureNamespace идемпотентен при race condition (IsAlreadyExists) - operator: NewRouter убран параметр apiToken — больше не нужен - examples/hello-node: prod.token + nubes_endpoint + версия провайдера 0.1.12 - протестировано: namespace sless-cdd874dfa31ba6ca создан автоматически --- hello-node/main.tf | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/hello-node/main.tf b/hello-node/main.tf index 15b7bb1..613856c 100644 --- a/hello-node/main.tf +++ b/hello-node/main.tf @@ -1,20 +1,24 @@ -# 2026-03-08 +# 2026-03-11 # main.tf — провайдеры. # Функции и их код определены в отдельных файлах: # http.tf — HTTP-триггер (code/handler-http.js) # job.tf — одноразовый запуск (code/handler-job.js) +# +# nubes_endpoint — провайдер делает GET запрос для валидации токена. +# Namespace вычисляется автоматически из JWT sub: sless-{sha256[:8]} terraform { required_providers { sless = { source = "terra.k8c.ru/naeel/sless" - version = "~> 0.1.11" + version = "~> 0.1.12" } } } provider "sless" { - endpoint = "https://sless-api.kube5s.ru" - token = "dev-token-change-me" + endpoint = "https://sless-api.kube5s.ru" + token = file("${path.module}/../../secrets/prod.token") + nubes_endpoint = "https://deck-api.ngcloud.ru/api/v1" }