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.