From 33f429e412910ef21a4cf60027be0df5458c2b36 Mon Sep 17 00:00:00 2001 From: chemavx Date: Wed, 22 Jul 2026 09:56:48 +0000 Subject: [PATCH] monitoring: cierra el formulario local de Grafana MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Con el SSO ya funcionando (379af6d), a la web sólo se entra por Authentik. Ayer se dejó abierto a propósito porque el SSO acababa de estar 15 días roto en silencio y no quería quedarme sin puerta; hoy, verificado que funciona, se cierra. Lo que NO cierra, y es lo que importa: la auth básica de la API sigue abierta. De ella cuelgan los dos sidecars —que es exactamente lo que se rompió mudo el 21 y dejó de recargar dashboards y datasources— y la puerta de emergencia con la contraseña del secret grafana-admin. Sí desaparece la otra: el POST /login pasa a devolver 400. Comprobado antes y después, porque era la salida que uno supondría disponible y ya no lo está. El procedimiento de rescate queda escrito junto al valor: la API con grafana-admin, y disable_login_form: false + helm upgrade para recuperar el formulario en un minuto. Verificado: SSO entra como akadmin; la auth básica entra como admin; disableLoginForm=true y authProxyEnabled=true en /api/frontend/settings; desde fuera sigue el 302 a Authentik; y los DOS sidecars probados con ConfigMaps reales, con 200 OK y el dashboard de prueba llegando de verdad a Grafana (y desapareciendo al retirar el ConfigMap). 0 errores en el arranque. Co-Authored-By: Claude Opus 4.8 --- .../configmap-kube-prometheus-stack-grafana.yaml | 2 ++ .../deployment-kube-prometheus-stack-grafana.yaml | 4 +--- monitoring/values-kube-prometheus-stack.yaml | 15 +++++++++++++-- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/monitoring/configmap-kube-prometheus-stack-grafana.yaml b/monitoring/configmap-kube-prometheus-stack-grafana.yaml index 5598618..8e4b01a 100644 --- a/monitoring/configmap-kube-prometheus-stack-grafana.yaml +++ b/monitoring/configmap-kube-prometheus-stack-grafana.yaml @@ -3,6 +3,8 @@ data: grafana.ini: | [analytics] check_for_updates = true + [auth] + disable_login_form = true [auth.proxy] auto_sign_up = true enabled = true diff --git a/monitoring/deployment-kube-prometheus-stack-grafana.yaml b/monitoring/deployment-kube-prometheus-stack-grafana.yaml index 201e0d9..54660fd 100644 --- a/monitoring/deployment-kube-prometheus-stack-grafana.yaml +++ b/monitoring/deployment-kube-prometheus-stack-grafana.yaml @@ -2,7 +2,6 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - deployment.kubernetes.io/revision: '17' meta.helm.sh/release-name: kube-prometheus-stack meta.helm.sh/release-namespace: monitoring labels: @@ -29,10 +28,9 @@ spec: template: metadata: annotations: - checksum/config: a6301dce6c406cc2f76aa94d5b1ea97e65ba7ab52b6cd5b7c57ee4787a91977a + checksum/config: a7d11f09c8d1845579310ceaad050350fe99b00a81b24756ce6a8e27827adf7a checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24 kubectl.kubernetes.io/default-container: grafana - kubectl.kubernetes.io/restartedAt: '2026-07-22T08:00:01Z' labels: app.kubernetes.io/instance: kube-prometheus-stack app.kubernetes.io/name: grafana diff --git a/monitoring/values-kube-prometheus-stack.yaml b/monitoring/values-kube-prometheus-stack.yaml index c17cefb..c4b853e 100644 --- a/monitoring/values-kube-prometheus-stack.yaml +++ b/monitoring/values-kube-prometheus-stack.yaml @@ -74,8 +74,19 @@ grafana: # fíe de esa cabecera y no vuelva a pedir credenciales. Sin este bloque el # SSO queda a medias: Authentik te deja pasar y Grafana te enseña SU # formulario. auto_sign_up crea el usuario (así nació akadmin). - # El formulario local se deja habilitado a propósito, como puerta de - # emergencia: la contraseña vive en el secret grafana-admin. + # disable_login_form cierra el formulario local: por la web sólo se entra + # por Authentik. NO cierra la auth básica de la API, que es de donde cuelgan + # los dos sidecars y la puerta de emergencia. + # + # SI EL SSO SE CAE Y NO PUEDES ENTRAR POR LA WEB: + # 1. La API sigue abierta con la contraseña del secret grafana-admin: + # kubectl get secret grafana-admin -n monitoring \ + # -o jsonpath='{.data.admin-password}' | base64 -d; echo + # y contra localhost:3000 dentro del pod, o por port-forward. + # 2. Para recuperar el formulario, poner disable_login_form: false aquí y + # helm upgrade. Tarda un minuto y no pierde nada. + auth: + disable_login_form: true auth.proxy: auto_sign_up: true enabled: true