mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 23:54:43 +02:00
- values.yaml monitoring : auth.generic_oauth (auth_url navigateur, token/api sur le Service interne), root_url, mapping lab-admins→Admin / sinon Viewer. Login local conservé (break-glass). - vault : vault_grafana_oauth_client_secret (= secret k8s monitoring/grafana-oauth-secret, déjà créé) - doc : runbook « ajouter une app » complété (exemple Grafana concret + groupe lab-admins) et procédure SQL pour promouvoir un compte SSO admin Guacamole (appliquée à Alkatrazz) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
182 lines
4.4 KiB
YAML
182 lines
4.4 KiB
YAML
# kube-prometheus-stack — cluster Funk
|
|
# Ressources limitées pour compute-02/03 (8 GB RAM)
|
|
|
|
grafana:
|
|
initChownData:
|
|
enabled: false
|
|
grafana.ini:
|
|
database:
|
|
type: postgres
|
|
host: 192.168.10.1:5432
|
|
name: grafana
|
|
user: grafana
|
|
server:
|
|
# Requis pour construire le redirect_uri OAuth (LAN : grafana.lab.local)
|
|
root_url: http://grafana.lab.local
|
|
# SSO OIDC via Authentik (app « grafana » dans l'UI Authentik).
|
|
# auth_url = navigateur (auth.lab.local) ; token/api = serveur→serveur (Service
|
|
# interne, les pods ne résolvent pas lab.local). Le login local reste actif
|
|
# (break-glass : admin / adminPassword ci-dessous) — ne pas mettre disable_login_form.
|
|
auth.generic_oauth:
|
|
enabled: true
|
|
name: Authentik
|
|
client_id: grafana
|
|
client_secret: $__env{GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET}
|
|
scopes: openid profile email
|
|
auth_url: http://auth.lab.local/application/o/authorize/
|
|
token_url: http://authentik.auth.svc.cluster.local:9000/application/o/token/
|
|
api_url: http://authentik.auth.svc.cluster.local:9000/application/o/userinfo/
|
|
# Membre du groupe lab-admins → Admin, sinon Viewer
|
|
role_attribute_path: contains(groups[*], 'lab-admins') && 'Admin' || 'Viewer'
|
|
role_attribute_strict: false
|
|
allow_assign_grafana_admin: true
|
|
envFromSecrets:
|
|
- name: grafana-db-secret
|
|
- name: grafana-oauth-secret
|
|
ingress:
|
|
enabled: true
|
|
ingressClassName: traefik
|
|
hosts:
|
|
- grafana.lab.local
|
|
adminPassword: "funk-grafana"
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 256Mi
|
|
limits:
|
|
memory: 1Gi
|
|
persistence:
|
|
enabled: true
|
|
storageClassName: nfs
|
|
size: 2Gi
|
|
|
|
prometheus:
|
|
ingress:
|
|
enabled: true
|
|
ingressClassName: traefik
|
|
hosts:
|
|
- prometheus.lab.local
|
|
paths:
|
|
- /
|
|
pathType: Prefix
|
|
|
|
prometheusSpec:
|
|
retention: 15d
|
|
retentionSize: "8GB"
|
|
resources:
|
|
requests:
|
|
cpu: 200m
|
|
memory: 512Mi
|
|
limits:
|
|
memory: 1Gi
|
|
storageSpec:
|
|
volumeClaimTemplate:
|
|
spec:
|
|
storageClassName: nfs
|
|
accessModes: ["ReadWriteOnce"]
|
|
resources:
|
|
requests:
|
|
storage: 20Gi
|
|
|
|
# Scrape des nœuds hors cluster (storage-01, gpu-01)
|
|
additionalScrapeConfigs:
|
|
- job_name: storage-01
|
|
static_configs:
|
|
- targets: ['192.168.10.1:9100']
|
|
labels:
|
|
instance: storage-01
|
|
role: gateway
|
|
|
|
- job_name: gpu-01-node
|
|
static_configs:
|
|
- targets: ['192.168.10.20:9100']
|
|
labels:
|
|
instance: gpu-01
|
|
role: gpu
|
|
|
|
- job_name: llama-server-gpu
|
|
static_configs:
|
|
- targets: ['192.168.10.20:1234']
|
|
labels:
|
|
instance: gpu-01
|
|
model: qwen3-8b
|
|
type: gpu
|
|
|
|
alertmanager:
|
|
ingress:
|
|
enabled: true
|
|
ingressClassName: traefik
|
|
hosts:
|
|
- alertmanager.lab.local
|
|
paths:
|
|
- /
|
|
pathType: Prefix
|
|
|
|
alertmanagerSpec:
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 64Mi
|
|
limits:
|
|
memory: 128Mi
|
|
config:
|
|
global:
|
|
resolve_timeout: 5m
|
|
route:
|
|
group_by: ['alertname', 'instance']
|
|
group_wait: 30s
|
|
group_interval: 5m
|
|
repeat_interval: 4h
|
|
receiver: hermes-monitor
|
|
routes:
|
|
# Watchdog (heartbeat interne kube-prometheus-stack) — silencé
|
|
- matchers:
|
|
- alertname = "Watchdog"
|
|
receiver: "null"
|
|
repeat_interval: 24h
|
|
receivers:
|
|
- name: "null"
|
|
- name: hermes-monitor
|
|
webhook_configs:
|
|
- url: 'http://192.168.10.1:9093/webhook'
|
|
send_resolved: true
|
|
- url: 'http://n8n.lab.local/webhook/alerts'
|
|
send_resolved: true
|
|
|
|
prometheusOperator:
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
memory: 256Mi
|
|
|
|
kube-state-metrics:
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 64Mi
|
|
limits:
|
|
memory: 128Mi
|
|
|
|
nodeExporter:
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 32Mi
|
|
limits:
|
|
memory: 64Mi
|
|
|
|
prometheus-node-exporter:
|
|
extraArgs:
|
|
- --collector.rapl
|
|
|
|
# Désactiver etcd/scheduler monitoring (Talos — non accessible)
|
|
kubeEtcd:
|
|
enabled: false
|
|
kubeScheduler:
|
|
enabled: false
|
|
kubeControllerManager:
|
|
enabled: false
|
|
kubeProxy:
|
|
enabled: false
|