monitoring: Fase 1 bajo ArgoCD (solo los manifiestos propios)
Hasta ahora las alertas de Grafana se aplicaban a mano con kubectl apply, asi que dependian de que alguien se acordara (se vio hoy al anadir las de B2). Lista blanca explicita en vez del directorio entero: monitoring/ mezcla tres duenos y solo uno es nuestro. Fuera quedan los ~40 renderizados del chart kube-prometheus-stack (release Helm viva -> dos duenos del mismo objeto) y los generados por controladores (rulefiles-0 del prometheus-operator, etc). Adoptar el chart via source Helm queda como Fase 2. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Fase 1 de meter monitoring/ bajo ArgoCD (2026-07-25).
|
||||
#
|
||||
# Por qué una lista blanca de ficheros y no el directorio entero: monitoring/
|
||||
# mezcla TRES dueños distintos y solo uno es nuestro.
|
||||
#
|
||||
# A) Lo que escribimos nosotros -> el include de aquí abajo, ArgoCD manda.
|
||||
# B) Lo que genera el chart -> kube-prometheus-stack (release Helm viva).
|
||||
# Meterlo aquí daría DOS dueños al mismo objeto y reproduciría la deriva
|
||||
# del three-way merge que ya se comió el alerting y el token de Telegram.
|
||||
# Adoptarlo va aparte (source Helm + values-kube-prometheus-stack.yaml,
|
||||
# borrando de git los ~40 renderizados). Pendiente = Fase 2.
|
||||
# C) Lo que fabrican los controladores solos -> serviceaccount-default,
|
||||
# configmap-kube-root-ca.crt y el rulefiles-0 (lo genera el
|
||||
# prometheus-operator desde los PrometheusRule). En git no pintan nada;
|
||||
# si ArgoCD los gestionara pelearía con el operator sin parar.
|
||||
#
|
||||
# OJO: ingress-kube-prometheus-stack-grafana.yaml NO está en la lista a
|
||||
# propósito — ese ingress lo gestiona Helm (managed-by=Helm). Es grupo B.
|
||||
#
|
||||
# Y OJO 2: este fichero DEBE vivir dentro de monitoring/ y estar en el include.
|
||||
# Es el patrón de la casa (cada app lleva su argocd-app.yaml en su directorio).
|
||||
# Si la Application no está dentro del path que ella misma vigila, el primer
|
||||
# sync con prune:true la ve como recurso huérfano y SE BORRA A SÍ MISMA
|
||||
# (pasó el 2026-07-25 al dejarla solo en argocd/, que es un volcado, no fuente).
|
||||
#
|
||||
# Motivo de la Fase 1: hasta hoy las alertas de Grafana se aplicaban a mano con
|
||||
# kubectl apply, así que dependían de que alguien se acordara. Ahora git manda.
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: monitoring
|
||||
namespace: argocd
|
||||
annotations:
|
||||
notifications.argoproj.io/subscribe.on-sync-failed.telegram: "5138407666"
|
||||
notifications.argoproj.io/subscribe.on-health-degraded.telegram: "5138407666"
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://git.chemavx.xyz/chemavx/k8s-manifests
|
||||
targetRevision: HEAD
|
||||
path: monitoring
|
||||
directory:
|
||||
recurse: false
|
||||
# Lista blanca explícita. Al añadir un fichero nuestro a monitoring/ hay
|
||||
# que añadirlo AQUÍ o ArgoCD lo ignora. Y al revés: sacar un fichero de
|
||||
# esta lista con prune:true activo BORRA el recurso del cluster.
|
||||
include: "{argocd-app.yaml,configmap-grafana-alerting.yaml,configmap-chemavx-homelab-overview.yaml,deployment-uptime-kuma.yaml,service-uptime-kuma.yaml,pvc-uptime-kuma-pvc.yaml,ingress-uptime-kuma.yaml,ingress-uptime-kuma-redirect.yaml,ingress-prometheus.yaml,infisical-grafana-telegram.yaml}"
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: monitoring
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
Reference in New Issue
Block a user