diff --git a/plausible/kustomization.yaml b/plausible/kustomization.yaml index 25b1c3f..2076dd9 100644 --- a/plausible/kustomization.yaml +++ b/plausible/kustomization.yaml @@ -78,6 +78,27 @@ patchesJson6902: value: - >- sleep 10 && /entrypoint.sh db migrate + # ── SONDE DE DÉMARRAGE PATIENTE (tools#53, même forme que Loki, #45) ── + # + # Le chart pascaliske 2.0.0 n'expose aucune sonde dans ses valeurs : il + # écrit `livenessProbe`/`readinessProbe` sur `/api/health` avec les + # défauts de Kubernetes — délai 1 s, 3 échecs, AUCUNE sonde de + # démarrage. Mesuré le 2026-09-15 : placé sur un pi2 chargé, Plausible + # était tué par la vivacité ~56 s après chaque départ (code 137), sans + # une ligne de journal, 13 fois en 30 min — il n'avait pas fini de + # démarrer. Une `startupProbe` tient la phase de démarrage (jusqu'à + # 10 min) ; la vivacité et la disponibilité, inchangées, ne prennent le + # relais qu'une fois le démarrage acquis. + # ⚠ Conteneur 0 = `plausible` (1 = `geoip`), comme les patchs ci-dessus. + - op: add + path: /spec/template/spec/containers/0/startupProbe + value: + httpGet: + path: /api/health + port: http + periodSeconds: 10 + failureThreshold: 60 # 10 min pour démarrer, puis on abandonne + timeoutSeconds: 5 - target: version: v1 kind: Deployment diff --git a/plausible/plausibleValues.yaml b/plausible/plausibleValues.yaml index fc2ef6a..c6e534c 100644 --- a/plausible/plausibleValues.yaml +++ b/plausible/plausibleValues.yaml @@ -165,15 +165,22 @@ resources: {} # memory: 128Mi # -- Pod-level affinity. More info [here](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling). -affinity: {} - # nodeAffinity: - # requiredDuringSchedulingIgnoredDuringExecution: - # nodeSelectorTerms: - # - matchExpressions: - # - key: kubernetes.io/hostname - # operator: In - # values: - # - my-node-xyz +# +# ⚠ JAMAIS SUR pi2 (tools#52, #53) : le nœud le plus chargé du cluster — c'est +# là que Plausible bouclait au démarrage le 2026-09-15. Même forme que +# ClickHouse (#54), MinIO (#50) et Prometheus (#51) : exclusion REQUISE, sans +# préférence. Elle ne bloque pas le placement si UN nœud tombe (pi1 ou pi3 +# restent éligibles) ; elle ne bloquerait que si pi1 ET pi3 tombaient, et pi1 +# porte le plan de contrôle. +affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: NotIn + values: + - pi2 # -- Pod-level tolerations. More info [here](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling). tolerations: []