gcloud-lab/infrastructure/controllers/base/monitoring/release.yaml

87 lines
2.3 KiB
YAML
Raw Normal View History

apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: kube-prometheus-stack
namespace: monitoring
spec:
interval: 30m
chart:
spec:
chart: kube-prometheus-stack
version: "63.x"
sourceRef:
kind: HelmRepository
name: prometheus-community
namespace: monitoring
interval: 12h
targetNamespace: monitoring
install:
createNamespace: true
crds: Create
upgrade:
crds: CreateReplace
driftDetection:
mode: enabled
ignore:
- paths: ["/metadata/annotations/prometheus-operator-validated"]
target:
kind: PrometheusRule
values:
# Alertmanager disabled - using Grafana-native alerting
alertmanager:
enabled: false
# Prometheus configuration
prometheus:
prometheusSpec:
retention: 7d
# Monitor pods from all namespaces (needed for CNPG, vLLM, etc.)
podMonitorNamespaceSelector: {}
podMonitorSelectorNilUsesHelmValues: false
probeSelectorNilUsesHelmValues: false
ruleSelectorNilUsesHelmValues: false
serviceMonitorSelectorNilUsesHelmValues: false
storageSpec:
volumeClaimTemplate:
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi
# ServiceMonitor for Prometheus itself
serviceMonitor:
selfMonitor: true
# Grafana configuration - NO PUBLIC INGRESS, internal only
grafana:
# Admin credentials
adminUser: admin
# Password injected from monitoring-grafana-admin secret
adminPassword: "change-me-after-deploy"
# No ingress - accessed via Tailscale port-forward or kubectl port-forward
ingress:
enabled: false
# Service - internal only (ClusterIP)
service:
type: ClusterIP
port: 3000
# Sidecar to auto-load dashboards from ConfigMaps
sidecar:
dashboards:
enabled: true
label: grafana_dashboard
labelValue: "1"
searchNamespace: all
folderAnnotation: grafana_folder
provider:
allowUiUpdates: true
folders:
- folder: Kubernetes
orgId: 1
type: file
datasources:
enabled: true