977e5c21dce1f0f5542d4e10bcbac498241ad3dd
Helm Charts / Detect changed charts (pull_request) Successful in 21s
Helm Charts / Library charts tool (pull_request) Skipped
Helm Charts / Application charts alloy (pull_request) Skipped
Helm Charts / Application charts chart (pull_request) Skipped
Helm Charts / Application charts grafana (pull_request) Skipped
Helm Charts / Application charts hashicorp-vault (pull_request) Skipped
Helm Charts / Application charts loki (pull_request) Skipped
Helm Charts / Application charts minio (pull_request) Skipped
Helm Charts / Application charts pgbouncer (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 crowdsec (pull_request) Successful in 50s
value: de #56 ne passait pas l'apply
#56 fixait le nom de machine de la LAPI avec un simple `value: crowdsec-lapi` dans `lapi.env`. Ça rendait correctement, et au runtime Kubernetes retient bien la dernière des deux définitions — un pod de test le confirmait. Mais ce n'est pas le runtime qui décide : c'est l'apply, et là ça cassait. `env` est une liste à clé de fusion (`name`). Le strategic merge patch fusionne donc les deux entrées CUSTOM_HOSTNAME en UNE, qui porte alors le `valueFrom` du chart ET notre `value`. L'API refuse : Deployment.apps "crowdsec-lapi" is invalid: spec.template.spec.containers[0].env[5].valueFrom: Invalid value: "": may not be specified when `value` is not empty ArgoCD a réessayé cinq fois puis s'est arrêté en SyncError. Le Deployment est resté INCHANGÉ — CrowdSec n'a pas été interrompu, mais le correctif n'était pas appliqué et l'application restait OutOfSync. Correctif : un `valueFrom` des deux côtés. La fusion écrase alors proprement le fieldPath et laisse une seule entrée valide. Comme un fieldRef ne sait lire qu'un champ du pod, et que tous ceux qu'expose le chart varient (le nom) ou disent autre chose (`k8s-app`, `type`), on pose un label dédié `machine-name` via `lapi.podLabels` et on pointe dessus. Vérifié cette fois sur le chemin qui compte : kubectl apply --dry-run=server -o json → une SEULE occurrence de CUSTOM_HOSTNAME, pointant sur metadata.labels['machine-name'], label valant `crowdsec-lapi`. La leçon est dans le commentaire du values : `helm template` ne voit rien de tout ça, le rendu est valide des deux côtés. Seule la fusion avec l'objet vivant distingue les deux formes. Co-Authored-By: Claude Opus 5 <[email protected]>
ClickHouse quitte pi3 pour pi1 : son volume y avait perdu son journal ext4 le 04/09, et Plausible n'écrivait plus rien (#54)
MinIO quitte pi2 : son volume y avait perdu son journal ext4, et aucun redémarrage ne le démontait (#50)
Plausible attend la fin de son démarrage et évite pi2 : il y était tué par sa sonde de vivacité avant d'avoir démarré (#55)
Prometheus quitte pi1 pour pi3 : son volume y avait perdu son journal ext4 le même jour que MinIO (#51)
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%