arcodangeandClaude Fable 5.1 c4720a1dfd
Helm Charts / Detect changed charts (pull_request) Successful in 41s
Helm Charts / Library charts tool (pull_request) Skipped
Helm Charts / Application charts crowdsec (pull_request) Skipped
Helm Charts / Application charts pgcat (pull_request) Skipped
Helm Charts / Application charts prometheus (pull_request) Skipped
Helm Charts / Application charts redis (pull_request) Skipped
Helm Charts / Application charts alloy (pull_request) Successful in 14s
Helm Charts / Application charts chart (pull_request) Successful in 36s
Helm Charts / Application charts loki (pull_request) Successful in 51s
Helm Charts / Application charts grafana (pull_request) Successful in 56s
Helm Charts / Application charts hashicorp-vault (pull_request) Skipped
Helm Charts / Application charts minio (pull_request) Skipped
Helm Charts / Application charts pgbouncer (pull_request) Skipped
Ces nœuds tournent sous Docker, et leur racine est ailleurs — la collecte lisait le vide
Trois faits mesurés au déploiement, qu'aucune lecture du chart n'aurait donnés.

1. LE CLUSTER TOURNE SOUS DOCKER, PAS SOUS CONTAINERD.
   `kubectl get nodes -o …containerRuntimeVersion` :
     pi1  docker://29.1.3
     pi2  docker://28.4.0
     pi3  docker://27.4.0
   Le commentaire du premier jet affirmait le contraire. Il était faux.

2. LES JOURNAUX NE SONT PAS SOUS /var/log — CE SONT DES LIENS.
     /var/log/pods/<ns>_<pod>_<uid>/<conteneur>/0.log
       -> /mnt/arcodange/docker/containers/<id>/<id>-json.log
   La racine Docker est déplacée sur un disque externe. Monter /var/log donne
   les liens et PAS leurs cibles : `ls` les montre, `stat` échoue dessus. Le
   drapeau `dockercontainers` du chart monterait /var/lib/docker/containers,
   qui n'existe pas ici. On monte la vraie racine, en lecture seule.
   Chemin vérifié identique sur pi1 et pi3, pod par pod.

3. LE FORMAT EST DU JSON DOCKER, DONC `stage.docker`, PAS `stage.cri`.
   Avec le mauvais décodeur, l'horodatage stocké serait celui de la LECTURE et
   non celui de l'écriture — or dater une panne à la minute est précisément
   l'usage qui motive ce lot (tools#36).

⚠⚠ CE QUI REND CE DÉFAUT DANGEREUX : IL SE PRÉSENTE COMME UNE SANTÉ PARFAITE.
Les six composants d'Alloy se déclaraient `healthy`, aucune erreur de poussée,
Loki répondait `ready`, les trois agents étaient 2/2 Running. La seule chose
qui parlait était `loki_source_file_files_active_total = 0` et l'export vide de
`local.file_match`. Une pile de journaux qui rassure sans rien garder : le
défaut même que l'issue #38 demande de ne pas reproduire.

Le hostPath est en `type: Directory` et non `DirectoryOrCreate`, exprès — si un
nœud n'a pas ce chemin, son agent doit refuser de démarrer et le DIRE, plutôt
que de monter un dossier vide et de rapporter zéro en se déclarant sain.

Corrige aussi le second conteneur non plafonné, jumeau de celui de Loki :
`config-reloader` arrive avec une REQUÊTE de 50Mi et AUCUNE limite. Une requête
sans limite n'est pas un plafond, c'est une réservation — et sur un DaemonSet
cela vaut sur les trois nœuds. On ne peut pas l'éteindre sans perdre le
rechargement à chaud : on le plafonne (32Mi / 64Mi).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-07 17:29:24 +02:00
2026-01-03 19:17:04 +01:00
2025-08-27 18:54:16 +02:00
2025-12-09 12:14:57 +01:00

Tools

CICD:
pousser la library helm dans le registre helm de gitea

pour chaque dossier de premier niveau contenant un fichier Chart.yaml (sauf les dossier library et chart)
le pousser dans le registre helm de gitea

Réseau

  • Ce que Traefik voit du client — pourquoi ClientIP() ne voit que le tunnel sur les hôtes .fr, pourquoi localIp@file n'a rien à y faire, et comment obtenir « pas de mot de passe depuis la maison » sans créer un contournement d'authentification.

pgbouncer

prometheus

hashicorp vault

experiment with sops

S
Description
No description provided
Readme
672 KiB
Languages
HCL 56.5%
Python 43.5%