Saltar a contenido

grafana-operator

Operador de Grafana. Provisiona como código los objetos internos de Grafana (service account + token, datasources, contact point de alerting), conectándose por la API de Grafana a la instancia desplegada por kube-prometheus-stack.

Resumen

Grafana (la app) la despliega kube-prometheus-stack; el grafana-operator gestiona la config interna que no se puede hacer con manifests de k8s: service account opencode (para el MCP de opencode), datasources Prometheus/Loki y el contact point de Telegram (Grafana Alerting). Se conecta a la Grafana del stack en modo external (no despliega otra Grafana).

Estado

Campo Valor
Estado Operativo
Argo CD Application grafana-operator
Namespace monitoring

Despliegue

Campo Valor
Método Helm chart (multi-source: chart + config)
Chart / imagen grafana-operator@5.25.0
Origen https://grafana.github.io/helm-charts
Config en el repo clusters/luka/config/grafana-operator/

Red

Campo Valor
Service — (habla con Grafana por la API interna)
IP —
URL interna —
URL externa —
TLS —

Acceso y usuarios

  • Conexión a Grafana: Grafana.external → kube-prometheus-stack-grafana.monitoring.svc:80 con el Secret grafana-admin (claves admin-user/admin-password).
  • Service account opencode: rol Admin, token en el Secret grafana-opencode-token (para el MCP de opencode).
  • Canal de Telegram (alertas): el contact point telegram envía al chat ramuh (chat_id 279293304). Canales disponibles del mismo bot: Casa (-665545694), Casa-dev (-778840696).

Configuración

  • Grafana (CR, modo external, label instance: main).
  • GrafanaServiceAccount opencode (rol Admin) + token opencode-token.
  • GrafanaDatasource Prometheus (http://kube-prometheus-stack-prometheus.monitoring.svc:9090, isDefault: true, uid fijo 04a2c368-…) y Loki (http://loki.monitoring.svc:3100).
  • GrafanaFolder Homelab (UID fijo dfxh1zb4z3ugwa) para los dashboards y las reglas de alerta.
  • GrafanaContactPoint Telegram: inyecta bot_token/chat_id desde el Secret telegram-bot vía valuesFrom.secretKeyRef.
  • GrafanaNotificationPolicy que enruta a telegram.
  • GrafanaAlertRuleGroup (p. ej. longhorn-io, ver longhorn.md) con las reglas de alerta (folder homelab, datasource Prometheus).

Almacenamiento

  • — (sin estado; la config se materializa en la API de Grafana).

Dependencias

  • Depende de: k3s, kube-prometheus-stack (Grafana), VKS (secret grafana-admin y telegram-bot).
  • Usado por: opencode (MCP grafana-gorkarevilla-homelab).

Backup y recuperación

  • Re-desplegable desde Git; el token opencode se regenera con el Secret grafana-opencode-token.

Monitorización

  • Es parte del propio stack de observabilidad.

Referencias

Notas / TODO

  • CRDs usados: Grafana, GrafanaServiceAccount, GrafanaDatasource, GrafanaFolder, GrafanaDashboard, GrafanaAlertRuleGroup, GrafanaContactPoint, GrafanaNotificationPolicy.