From 7ffaa11debfec9df266f20bd5d25dc60cadb2eff Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Tue, 15 Sep 2026 13:59:46 +0200 Subject: [PATCH] =?UTF-8?q?Plausible=20attend=20la=20fin=20de=20son=20d?= =?UTF-8?q?=C3=A9marrage=20et=20=C3=A9vite=20pi2=20:=20il=20y=20=C3=A9tait?= =?UTF-8?q?=20tu=C3=A9=20par=20sa=20sonde=20de=20vivacit=C3=A9=20avant=20d?= =?UTF-8?q?'avoir=20d=C3=A9marr=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le 2026-09-15, la révision créée par la rotation de ses identifiants de base a été placée sur pi2. Depuis 11:08Z, le conteneur était tué par la sonde de vivacité (délai 1 s, 3 échecs, aucune sonde de démarrage) ~56 s après chaque départ, code 137, sans une ligne de journal. - une startupProbe patiente sur /api/health (10 min, délai 5 s), posée par patch kustomize : le chart pascaliske 2.0.0 n'expose pas les sondes ; - une affinité requise NotIn [pi2], même forme que ClickHouse (#54). Rendu kustomize --enable-helm avant/après : seuls ces deux blocs changent. Refs arcodange-org/tools#53 Co-Authored-By: Claude Opus 5 --- plausible/kustomization.yaml | 21 +++++++++++++++++++++ plausible/plausibleValues.yaml | 25 ++++++++++++++++--------- 2 files changed, 37 insertions(+), 9 deletions(-) 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: [] -- 2.54.0