Deploy monitoring stack

This commit is contained in:
2026-05-18 21:42:32 -05:00
parent dbf0b18f07
commit 2ed70b4964
8 changed files with 386 additions and 25 deletions

View File

@@ -0,0 +1,170 @@
# ------------------------------------------------------------------------------
# kube-prometheus-stack — Helm Values
# Chart: https://prometheus-community.github.io/helm-charts
# Version: 70.4.2
# ------------------------------------------------------------------------------
# ─── Global ───────────────────────────────────────────────────────────────────
fullnameOverride: ""
# ─── Alertmanager ─────────────────────────────────────────────────────────────
# Deployed but unconfigured — wire into n8n later
alertmanager:
enabled: true
alertmanagerSpec:
storage:
volumeClaimTemplate:
spec:
storageClassName: nfs-emporium
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
# ─── Prometheus ───────────────────────────────────────────────────────────────
prometheus:
prometheusSpec:
# Retention
retention: 30d
retentionSize: "45GB"
# Storage — NFS via csi-driver-nfs
storageSpec:
volumeClaimTemplate:
spec:
storageClassName: nfs-emporium
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
# Scrape all ServiceMonitors and PodMonitors regardless of namespace
serviceMonitorSelectorNilUsesHelmValues: false
podMonitorSelectorNilUsesHelmValues: false
ruleSelectorNilUsesHelmValues: false
# Resource limits — fastpass workers have reasonable headroom
resources:
requests:
cpu: 200m
memory: 512Mi
limits:
cpu: 1000m
memory: 2Gi
# ─── Grafana ──────────────────────────────────────────────────────────────────
grafana:
enabled: true
# Stateless — dashboards managed as ConfigMaps, no PVC needed
persistence:
enabled: false
# Admin credentials via ESO from 1Password
admin:
existingSecret: grafana-admin-secret
userKey: admin-user
passwordKey: admin-password
# Grafana URL — used for redirects and OAuth callbacks
grafana.ini:
server:
root_url: https://grafana.local.mk-labs.cloud
auth:
disable_login_form: false
# Default dashboards
defaultDashboardsEnabled: true
defaultDashboardsTimezone: browser
# Node Exporter Full — dashboard 1860
dashboardProviders:
dashboardproviders.yaml:
apiVersion: 1
providers:
- name: default
orgId: 1
folder: ""
type: file
disableDeletion: false
editable: true
options:
path: /var/lib/grafana/dashboards/default
dashboards:
default:
node-exporter-full:
gnetId: 1860
revision: 37
datasource: Prometheus
kubernetes-cluster:
gnetId: 7249
revision: 1
datasource: Prometheus
kubernetes-pods:
gnetId: 6336
revision: 1
datasource: Prometheus
# Sidecar for ConfigMap-based dashboards
sidecar:
dashboards:
enabled: true
searchNamespace: ALL
label: grafana_dashboard
labelValue: "1"
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
# ─── Node Exporter ────────────────────────────────────────────────────────────
nodeExporter:
enabled: true
prometheus-node-exporter:
tolerations:
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
# ─── kube-state-metrics ───────────────────────────────────────────────────────
kubeStateMetrics:
enabled: true
# ─── Prometheus Operator ──────────────────────────────────────────────────────
prometheusOperator:
enabled: true
# ─── Component scraping ───────────────────────────────────────────────────────
kubeApiServer:
enabled: true
kubelet:
enabled: true
kubeControllerManager:
enabled: true
kubeScheduler:
enabled: true
kubeProxy:
enabled: false # Cilium replaces kube-proxy
kubeEtcd:
enabled: true
endpoints:
- 10.1.71.66
- 10.1.71.67
- 10.1.71.68
service:
enabled: true
port: 2381
targetPort: 2381