Files
italiadatacenter/add-on/monitoring/files/01-kube-prometheus-stack-values.yaml
alessandro barucci 1a2cca2cd2 varie
2026-08-09 17:03:02 +02:00

174 lines
5.4 KiB
YAML

# =====================================================================
# values.yaml per kube-prometheus-stack su RKE2 (installazione diretta,
# senza Rancher Manager)
#
# Repo: https://prometheus-community.github.io/helm-charts
# Chart: kube-prometheus-stack
#
# Install:
# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# helm repo update
# helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack \
# -n monitoring --create-namespace \
# -f 01-kube-prometheus-stack-values.yaml
# =====================================================================
# ---------------------------------------------------------------------
# Prometheus
# ---------------------------------------------------------------------
prometheus:
prometheusSpec:
retention: 15d
retentionSize: "10GB"
# Adatta alla storageClass disponibile nel tuo cluster RKE2
# (es. longhorn, local-path-provisioner, ceph-rbd, ecc.)
storageSpec:
volumeClaimTemplate:
spec:
storageClassName: longhorn # <-- CAMBIA con la tua storageClass
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 50Gi
resources:
requests:
cpu: 250m
memory: 1Gi
limits:
memory: 2Gi
# Permette a Prometheus di scoprire ServiceMonitor/PodMonitor
# creati in QUALSIASI namespace (importante per uno stack "generico"
# dove le verticali applicative, es. CNPG, vivono in namespace propri)
serviceMonitorSelectorNilUsesHelmValues: false
podMonitorSelectorNilUsesHelmValues: false
ruleSelectorNilUsesHelmValues: false
# Su RKE2 il control-plane espone metriche ma va abilitato esplicitamente
# lo scraping (vedi sezioni kubeEtcd/kubeControllerManager/kubeScheduler
# più sotto). Se il tuo cluster è "hardened" e non espone questi endpoint
# sui nodi worker, valuta di disabilitare le relative sezioni.
# ---------------------------------------------------------------------
# Control plane RKE2 — di default questi componenti su RKE2 girano come
# pod statici raggiungibili sul nodo server; verificare le porte reali
# con `kubectl get pods -n kube-system` e `netstat` sul nodo se lo
# scraping non trova i target.
# ---------------------------------------------------------------------
kubeEtcd:
enabled: true
service:
port: 2381
targetPort: 2381
kubeControllerManager:
enabled: true
service:
port: 10257
targetPort: 10257
# RKE2 espone il controller-manager in HTTPS con cert self-signed:
# potrebbe servire scrapeConfig con tlsConfig.insecureSkipVerify: true
# (vedi kube-prometheus-stack docs, sezione "kubeControllerManager").
kubeScheduler:
enabled: true
service:
port: 10259
targetPort: 10259
# Traefik è deployato di default su RKE2 ed è considerato componente
# interno. Se lo usi come ingress controller, aggiungi un ServiceMonitor
# dedicato puntato al suo endpoint /metrics (di solito porta 9100).
kubeProxy:
enabled: true
# ---------------------------------------------------------------------
# Alertmanager
# ---------------------------------------------------------------------
alertmanager:
alertmanagerSpec:
retention: 120h
storage:
volumeClaimTemplate:
spec:
storageClassName: longhorn # <-- CAMBIA con la tua storageClass
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 5Gi
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
memory: 256Mi
# Config di base; per la config completa vedi il file
# 04-alertmanager-config.yaml (AlertmanagerConfig CRD, più gestibile
# in modo dichiarativo/GitOps rispetto a alertmanager.config qui).
# ---------------------------------------------------------------------
# Grafana (incluso nel chart)
# ---------------------------------------------------------------------
grafana:
enabled: true
defaultDashboardsTimezone: Europe/Rome
persistence:
enabled: true
storageClassName: longhorn # <-- CAMBIA con la tua storageClass
size: 5Gi
# Cambia in produzione: usa un Secret invece di plaintext
adminPassword: "CHANGE_ME"
# Loki come datasource aggiuntivo (vedi file 03-loki-alloy)
additionalDataSources:
- name: Loki
type: loki
access: proxy
url: http://loki.monitoring.svc.cluster.local:3100
isDefault: false
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
memory: 256Mi
# Import automatico dashboard CNPG (ID 20417) via sidecar dashboards
# già incluso nel chart: basta creare un ConfigMap con label
# grafana_dashboard=1 (vedi file 02-cnpg-monitoring.yaml in fondo,
# sezione dashboard, oppure importa manualmente da Grafana UI).
# ---------------------------------------------------------------------
# node-exporter
# ---------------------------------------------------------------------
nodeExporter:
enabled: true
prometheus-node-exporter:
resources:
requests:
cpu: 50m
memory: 30Mi
limits:
memory: 50Mi
# ---------------------------------------------------------------------
# kube-state-metrics
# ---------------------------------------------------------------------
kubeStateMetrics:
enabled: true
kube-state-metrics:
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
memory: 128Mi