feat: funcs as global Go service (sless-funcs-service:v0.1.1)
- services/funcs/main.go: standalone Go HTTP server extracts JWT sub -> SHA256[:8] -> namespace -> calls operator API returns plain text list, sorted active first, /health probe endpoint - services/funcs/Dockerfile: multi-stage Go build -> alpine - deployments/k8s/funcs-service.yaml: Deployment+Service+Ingress in sless ns ingress path /funcs -> sless-funcs-service:8090, reuses sless-operator-tls - examples/POSTGRES/resources.tf: removed funcs_list function+trigger+output Image: naeel/sless-funcs-service:v0.1.1
This commit is contained in:
@@ -161,48 +161,4 @@ output "table_reader_url" {
|
||||
value = sless_trigger.postgres_table_reader_http.url
|
||||
}
|
||||
|
||||
# Namespace пользователя — извлекаем из уже известного URL триггера.
|
||||
# URL формат: https://sless.kube5s.ru/fn/sless-{hex16}/{name}
|
||||
# split("/") → ["https:", "", "sless.kube5s.ru", "fn", "sless-{hex16}", "{name}"]
|
||||
# element(..., 4) → "sless-{hex16}"
|
||||
locals {
|
||||
user_namespace = element(split("/", sless_trigger.postgres_table_reader_http.url), 4)
|
||||
}
|
||||
|
||||
# HTTP-функция возвращает список всех функций пользователя с их статусами и триггерами.
|
||||
# Вызывает внутренний API оператора — не проходит через внешний Ingress.
|
||||
# Доступна по URL: https://sless.kube5s.ru/fn/<namespace>/funcs
|
||||
resource "sless_function" "funcs_list" {
|
||||
name = "funcs"
|
||||
runtime = "python3.11"
|
||||
entrypoint = "funcs_list.list_all"
|
||||
memory_mb = 128
|
||||
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
|
||||
# Публичный домен: 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"
|
||||
|
||||
depends_on = [sless_trigger.postgres_table_reader_http]
|
||||
}
|
||||
|
||||
resource "sless_trigger" "funcs_list_http" {
|
||||
name = "funcs-http"
|
||||
type = "http"
|
||||
function = sless_function.funcs_list.name
|
||||
enabled = true
|
||||
}
|
||||
|
||||
output "funcs_url" {
|
||||
value = sless_trigger.funcs_list_http.url
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user