c4720a1dfdf7d2fb89328d07be5e13fa5130c09b
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
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]>
minio_app : le compte de service peut refermer et abandonner un téléversement en parts (kadans#1033) (#35)
Un veilleur hors de Prometheus, pour que son silence cesse de ressembler au bon fonctionnement (#39)
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, pourquoilocalIp@filen'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
Languages
HCL
56.5%
Python
43.5%