feat: NodeJS pg-info function; funcs endpoint: filter + created_at/last_built_at; operator v0.1.32

This commit is contained in:
Naeel
2026-03-18 11:03:58 +03:00
parent 6010649e7b
commit 9bc91841c8
7 changed files with 352 additions and 70 deletions
+39 -4
View File
@@ -95,6 +95,37 @@ resource "sless_job" "postgres_table_init_job" {
depends_on = [nubes_postgres_database.db]
}
# HTTP-функция на NodeJS: возвращает версию PG-сервера и счётчик строк в таблице.
# Единственная функция примера на nodejs20 — проверка что JS runtime работает.
# Доступна по URL: https://sless.kube5s.ru/fn/<namespace>/pg-info
resource "sless_function" "pg_info" {
name = "pg-info"
runtime = "nodejs20"
entrypoint = "pg_info.info"
memory_mb = 128
timeout_sec = 15
env_vars = {
PGHOST = local.pg_host
PGPORT = "5432"
PGDATABASE = local.pg_database
PGUSER = local.pg_username
PGPASSWORD = local.pg_password
PGSSLMODE = "require"
}
source_dir = "${path.module}/code/pg-info"
depends_on = [sless_job.postgres_table_init_job]
}
resource "sless_trigger" "pg_info_http" {
name = "pg-info-http"
type = "http"
function = sless_function.pg_info.name
enabled = true
}
# HTTP-функция читает строки из terraform_demo_table и возвращает JSON.
# Использует те же credentials что и sql-runner.
# Доступна по URL: https://sless.kube5s.ru/fn/<namespace>/pg-table-reader
@@ -149,10 +180,14 @@ resource "sless_function" "funcs_list" {
timeout_sec = 15
env_vars = {
# Внутренний ClusterIP сервис оператора — без TLS, без DNS-overhead.
SLESS_API_URL = "http://sless-operator.sless.svc.cluster.local:9090"
SLESS_NAMESPACE = local.user_namespace
SLESS_TOKEN = var.api_token
# Внутренний ClusterIP сервис оператора — без TLS, без DNS-overhead
SLESS_API_URL = "http://sless-operator.sless.svc.cluster.local:9090"
SLESS_NAMESPACE = local.user_namespace
SLESS_TOKEN = var.api_token
# Публичный домен: terraform state может хранить старый sless-api.kube5s.ru в URLs
SLESS_EXTERNAL_URL = "https://sless.kube5s.ru"
# Служебные функции — не показывать в листинге
SLESS_EXCLUDE = "funcs,event-writer,event-monitor,event-cleaner"
}
source_dir = "${path.module}/code/funcs-list"