diff --git a/.github/pravila.md b/.github/pravila.md index b08ba1f..94bb3ba 100644 --- a/.github/pravila.md +++ b/.github/pravila.md @@ -91,6 +91,13 @@ rsync -az -e "ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no" \ **Никогда не разбираться с результатами по памяти / буферу / чату. Только лог.** +## ⛔ РУЧНЫЕ ПАТЧИ — ЗАПРЕЩЕНЫ + +- НИКОГДА не применять ручные патчи (`kubectl patch`, `kubectl apply` отдельных полей, `python -c` замены в yaml и т.д.) без явного указания. +- Все изменения — только через код (Helm chart, YAML, Go-код) + сборка + деплой. +- Ручной патч слетает при следующем helm upgrade/redeploy → регрессия. +- Исключение: только если пользователь явно написал "примени ручной патч". + ## Поведение агента - Не трогать рабочий код без явного указания diff --git a/console/deploy/console.yaml b/console/deploy/console.yaml index 9066273..11bb9c7 100644 --- a/console/deploy/console.yaml +++ b/console/deploy/console.yaml @@ -52,7 +52,7 @@ spec: serviceAccountName: fission-console containers: - name: console - image: naeel/fission-console:v1.3.56 + image: naeel/fission-console:v1.3.58 imagePullPolicy: Always ports: - containerPort: 8090 @@ -146,13 +146,8 @@ spec: name: fission-console port: number: 8090 - - path: /cron - pathType: Prefix - backend: - service: - name: fission-console - port: - number: 8090 + # ⛔ /cron НЕ ПРИНАДЛЕЖИТ console. Ingress /cron → metrics-collector:8091 (metrics-collector/deploy/metrics-collector.yaml) + # ⛔ НЕ ДОБАВЛЯТЬ /cron сюда — это сломает независимость сервисов. tls: - hosts: - fission.kube5s.ru diff --git a/console/internal/api/timetriggers.go b/console/internal/api/timetriggers.go index 65daf91..a191a4a 100644 --- a/console/internal/api/timetriggers.go +++ b/console/internal/api/timetriggers.go @@ -19,10 +19,10 @@ import ( ) const ( - timeTriggerDefaultMethod = http.MethodPost + timeTriggerDefaultMethod = http.MethodPost timeTriggerDefaultSubPath = "/" timeTriggerMaxNameLen = 63 - cronGatewayURL = "http://fission-console.fission.svc.cluster.local" + cronGatewayURL = "http://fission-console.fission.svc.cluster.local" ) var validTimeTriggerMethods = map[string]struct{}{ @@ -502,4 +502,4 @@ func errStatus(err error) int { return ae.status } return http.StatusInternalServerError -} \ No newline at end of file +} diff --git a/console/ui/index.html b/console/ui/index.html index 62346cd..8d566a1 100644 --- a/console/ui/index.html +++ b/console/ui/index.html @@ -102,7 +102,7 @@
NUBES
FISSION CONSOLE
-
v1.3.56
+
v1.3.58
@@ -462,7 +462,7 @@
- v1.3.56 + v1.3.58
diff --git a/metrics-collector/cmd/server/main.go b/metrics-collector/cmd/server/main.go index 62c4275..f1a78d6 100644 --- a/metrics-collector/cmd/server/main.go +++ b/metrics-collector/cmd/server/main.go @@ -24,6 +24,9 @@ func main() { _, _ = w.Write([]byte("ok\n")) }) mux.HandleFunc("/metrics", srv.HandleMetrics) + // ⛔ /cron/metrics — внешний путь через ingress /cron → metrics-collector:8091. + // ⛔ НЕ УДАЛЯТЬ. Без этого маршрута UI на /cron не получает данные. + mux.HandleFunc("/cron/metrics", srv.HandleMetrics) mux.Handle("/", ui.Handler()) httpSrv := &http.Server{ diff --git a/metrics-collector/deploy/metrics-collector.yaml b/metrics-collector/deploy/metrics-collector.yaml index 1c878cb..8ee71ac 100644 --- a/metrics-collector/deploy/metrics-collector.yaml +++ b/metrics-collector/deploy/metrics-collector.yaml @@ -17,7 +17,7 @@ spec: spec: containers: - name: metrics-collector - image: naeel/metrics-collector:v0.1.0 + image: naeel/metrics-collector:v0.1.3 ports: - containerPort: 8091 env: @@ -54,3 +54,36 @@ spec: ports: - port: 8091 targetPort: 8091 +--- +# ⛔ АРХИТЕКТУРА: три независимые сущности: +# 1. croned (функция) — шлёт метрики POST /metrics → metrics-collector:8091 +# 2. metrics-collector (этот сервис) — хранит и отдаёт метрики, UI на /cron +# 3. fission-console — управление функциями, НЕ ЗНАЕТ про метрики +# +# ⛔ НЕ ПЕРЕНОСИТЬ /cron в ingress fission-console — это ломает архитектуру. +# ⛔ НЕ УБИРАТЬ этот Ingress — без него /cron страница недоступна снаружи. +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: metrics-collector + namespace: fission + annotations: + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + cert-manager.io/cluster-issuer: "letsencrypt-prod" +spec: + ingressClassName: nginx + rules: + - host: fission.kube5s.ru + http: + paths: + - path: /cron + pathType: Prefix + backend: + service: + name: metrics-collector + port: + number: 8091 + tls: + - hosts: + - fission.kube5s.ru + secretName: fission-tls diff --git a/metrics-collector/ui/index.html b/metrics-collector/ui/index.html index 99aa15d..8717152 100644 --- a/metrics-collector/ui/index.html +++ b/metrics-collector/ui/index.html @@ -228,7 +228,7 @@