feat: IoT Admin Stats page — /iot-admin (v0.1.70)

- GET /iot-admin — HTML страница администратора (go:embed)
- GET /iot-admin/stats — JSON API с данными (Bearer ADMIN_STATS_TOKEN)
- Источники: Kafka consumer lag, K8s pod statuses, PostgreSQL per-tenant stats
- Авторизация: ADMIN_STATS_TOKEN env var
- Auto-refresh каждые 30 секунд
- Nubes brand style
This commit is contained in:
Naeel
2026-04-06 19:14:57 +03:00
parent 69451007f6
commit 7220fe5b8b
8 changed files with 906 additions and 9 deletions
+9 -2
View File
@@ -1,4 +1,4 @@
# Изменено: 2026-04-05 (добавлен IOT_PG_DSN, версия v0.1.59)
# Изменено: 2026-04-06 (добавлены KAFKA_BROKERS, ADMIN_STATS_TOKEN, версия v0.1.70)
# Деплой sless оператора в кластер.
# Состав:
# - ConfigMap: не-секретные env vars (S3_ENDPOINT, REGISTRY_HOST и т.д.)
@@ -33,6 +33,8 @@ data:
# EXTERNAL_URL — если задан, URL функции = EXTERNAL_URL/fn/{namespace}/{name}
# Позволяет обойтись без wildcard DNS *.fn.kube5s.ru
EXTERNAL_URL: "https://sless.kube5s.ru"
# KAFKA_BROKERS — адрес Kafka для чтения consumer lag на странице администратора
KAFKA_BROKERS: "kafka.sless.svc.cluster.local:9092"
---
# Secret создаётся отдельно через kubectl (не коммитить секреты в git!)
# Описание ключей:
@@ -75,7 +77,7 @@ spec:
- name: operator
# При обновлении версии оператора — менять тег здесь (не latest!)
# v0.1.59 — добавлено сохранение телеметрии в IoT Postgres (per-tenant DB)
image: pearlharbor.registryk8s.services.ngcloud.ru/naeel/sless-operator:v0.1.59
image: pearlharbor.registryk8s.services.ngcloud.ru/naeel/sless-operator:v0.1.70
# Always — чтобы всегда тянуть по точному тегу (не кешировать старый)
imagePullPolicy: Always
ports:
@@ -94,6 +96,11 @@ spec:
- secretRef:
name: iot-postgres-secret
optional: true
env:
# ADMIN_STATS_TOKEN — токен доступа к /iot-admin/stats (страница администратора).
# Менять на уникальный: kubectl set env deploy/sless-operator ADMIN_STATS_TOKEN=<token> -n sless
- name: ADMIN_STATS_TOKEN
value: "iot-admin-sless-2026"
readinessProbe:
httpGet:
path: /healthz