feat: proxy /fn/{namespace}/{name} — обход wildcard DNS

Проблема: wildcard DNS *.fn.kube5s.ru недоступен.
Решение: прокси через sless-api.kube5s.ru/fn/{ns}/{name}.

- handler/invoke.go: прокси к Service функции внутри кластера
- router.go: /fn/ без auth токена, /v1/ с auth (gorilla Use())
- config.go: поле ExternalURL (EXTERNAL_URL env)
- trigger_controller.go: если ExternalURL задан — URL = ExternalURL/fn/{ns}/{fn}
  иначе fallback: Ingress + поддомен (прежнее поведение)
- operator.yaml: EXTERNAL_URL=https://sless-api.kube5s.ru, image v0.1.5

Оператор v0.1.5 задеплоен.
E2E: curl https://sless-api.kube5s.ru/fn/default/hello-node → {"message":"Hello, Naeel! (nodejs20)"}
This commit is contained in:
“Naeel”
2026-03-07 18:36:03 +04:00
parent a6bc67de05
commit 2ee9cae6d2
6 changed files with 313 additions and 220 deletions
+1
View File
@@ -140,6 +140,7 @@ func main() {
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
IngressHost: cfg.IngressHost,
ExternalURL: cfg.ExternalURL,
}).SetupWithManager(mgr); err != nil {
log.Error("unable to create controller", "controller", "Trigger", "err", err)
os.Exit(1)