chore: update

This commit is contained in:
Xor290
2026-08-16 20:01:14 +02:00
parent d8794358c5
commit d23d2cbe37
17 changed files with 530 additions and 126 deletions
@@ -0,0 +1,6 @@
apiVersion: v2
name: gestion-resource-quota
description: Plafond agrégé de ressources par namespace de démo (ResourceQuota + LimitRange) — empêche un client de saturer le cluster au détriment des autres démos, même via l'autoscaling (HPA) du backend/frontend.
type: application
version: 0.1.0
appVersion: "1.0.0"
@@ -0,0 +1,36 @@
apiVersion: v1
kind: ResourceQuota
metadata:
name: demo-quota
spec:
hard:
requests.cpu: {{ .Values.quota.requestsCpu | quote }}
requests.memory: {{ .Values.quota.requestsMemory | quote }}
limits.cpu: {{ .Values.quota.limitsCpu | quote }}
limits.memory: {{ .Values.quota.limitsMemory | quote }}
pods: {{ .Values.quota.maxPods | quote }}
persistentvolumeclaims: {{ .Values.quota.maxPVCs | quote }}
---
# Défauts requests/limits pour tout container qui ne les préciserait pas —
# nécessaire pour que le ResourceQuota ci-dessus n'empêche pas la création
# de pods qui omettraient ces champs.
apiVersion: v1
kind: LimitRange
metadata:
name: demo-limits
spec:
limits:
- type: Container
defaultRequest:
cpu: {{ .Values.limitRange.defaultRequestCpu | quote }}
memory: {{ .Values.limitRange.defaultRequestMemory | quote }}
default:
cpu: {{ .Values.limitRange.defaultLimitCpu | quote }}
memory: {{ .Values.limitRange.defaultLimitMemory | quote }}
min:
cpu: {{ .Values.limitRange.minCpu | quote }}
memory: {{ .Values.limitRange.minMemory | quote }}
max:
cpu: {{ .Values.limitRange.maxCpu | quote }}
memory: {{ .Values.limitRange.maxMemory | quote }}
@@ -0,0 +1,34 @@
# Plafonds calculés à partir du pire cas d'une démo au complet, HPA au max
# (voir deploy/chart-gestion/{postgresql,redis,backend,frontend,lbtelegram}
# /values.yaml — postgres 1 replica, redis 1 replica, backend jusqu'à 5
# replicas, frontend jusqu'à 4, lbtelegram 1 replica si activé) :
# requests cpu : 250m + 100m + 5×100m + 4×50m + 100m = 1150m -> arrondi 2
# requests mem : 256 + 128 + 5×128 + 4×64 + 128 = 1408Mi -> arrondi 2Gi
# limits cpu : 1000m + 500m + 5×500m + 4×200m + 500m = 5300m -> arrondi 6
# limits mem : 1024 + 512 + 5×256 + 4×128 + 256 = 3584Mi -> arrondi 5Gi
# Marge volontaire au-dessus du calcul pour laisser de la place à des pods
# ponctuels (exec admin, job de migration) sans bloquer le provisioning.
quota:
requestsCpu: "2"
requestsMemory: "2Gi"
limitsCpu: "6"
limitsMemory: "5Gi"
# Cap dur sur le nombre de pods/PVC du namespace — empêche un pod-spam ou
# une boucle de CrashLoop mal configurée d'épuiser les IP/ressources du
# nœud. 3 PVC utilisés aujourd'hui (postgres, redis, uploads) + marge.
maxPods: "20"
maxPVCs: "5"
# Défauts appliqués à tout container qui ne préciserait pas ses propres
# requests/limits — sans ça, le ResourceQuota ci-dessus rendrait la création
# de pod obligatoirement explicite (K8s rejette un pod sans requests/limits
# dans un namespace où un ResourceQuota les couvre).
limitRange:
defaultRequestCpu: "100m"
defaultRequestMemory: "128Mi"
defaultLimitCpu: "500m"
defaultLimitMemory: "256Mi"
minCpu: "10m"
minMemory: "16Mi"
maxCpu: "2"
maxMemory: "1Gi"