Demande du fondateur (2026-09-26) : « Je veux qu'on utilise l'external hard disk ». Et, la veille : « No need for replicas for homelab. Our staging environment holds no critical files. »
Pourquoi
Longhorn a mis MinIO trois fois en « drive is faulty » : #31, #49 et #58.
Ce matin, le volume de MinIO était degraded, avec une seule réplique vivante, sur pi2 (84 % de CPU).
Tant que pi3 est cordonné, Longhorn ne peut pas remonter à trois répliques.
Ce que fait la PR
minio/templates/volume-disque-externe.yaml pose un PV local sur pi1:/mnt/arcodange/minio, avec un PVC minio-disque-externe qui y est lié. Les deux sont en Retain et Prune=false.
Le Deployment monte {{ .Values.minio.persistence.claim }} (= minio-disque-externe). La préférence pour pi3 disparaît, puisque le pod suit son volume.
Le projet tools autorise PersistentVolume (cluster-scoped), avec sa raison, comme PriorityClass le 2026-09-11.
Le disque manquant. Si pi1 démarre sans son disque, le chemin n'existe pas sur la carte SD. MinIO refuse de démarrer plutôt que d'écrire sur la carte.
Le retour arrière. Le PVC Longhorn minio reste en place, détaché ; il suffit de remettre claim: minio.
La migration (hors dépôt, par Jobs ponctuels)
Copie à chaud, MinIO servant toujours : le Job tools/minio-vers-disque-externe-1 sur pi1 lit le volume Longhorn en lecture seule et rsync vers /mnt/arcodange/minio, bridé à 15 Mo/s. Il REFUSE si /mnt/arcodange/longhorn est absent, donc si ce n'est pas le disque externe. La donnée fait 7,7 Go ; pi1 a 191 Gio libres.
La fusion de cette PR fait basculer MinIO (Recreate : quelques secondes).
Un rsync --update rattrape ce qui a été écrit entre 1 et 2, puis on vérifie : santé 200, et une affiche et des vignettes servies.
**Demande du fondateur** (2026-09-26) : « Je veux qu'on utilise l'external hard disk ». Et, la veille : « No need for replicas for homelab. Our staging environment holds no critical files. »
### Pourquoi
- Longhorn a mis MinIO trois fois en « drive is faulty » : #31, #49 et #58.
- Ce matin, le volume de MinIO était `degraded`, avec **une seule** réplique vivante, sur pi2 (84 % de CPU).
- Tant que pi3 est cordonné, Longhorn ne peut pas remonter à trois répliques.
### Ce que fait la PR
- `minio/templates/volume-disque-externe.yaml` pose un PV `local` sur `pi1:/mnt/arcodange/minio`, avec un PVC `minio-disque-externe` qui y est lié. Les deux sont en `Retain` et `Prune=false`.
- Le Deployment monte `{{ .Values.minio.persistence.claim }}` (= `minio-disque-externe`). La préférence pour pi3 disparaît, puisque le pod suit son volume.
- Le projet `tools` autorise `PersistentVolume` (cluster-scoped), avec sa raison, comme `PriorityClass` le 2026-09-11.
- **Le disque manquant.** Si pi1 démarre sans son disque, le chemin n'existe pas sur la carte SD. MinIO **refuse de démarrer** plutôt que d'écrire sur la carte.
- **Le retour arrière.** Le PVC Longhorn `minio` reste en place, détaché ; il suffit de remettre `claim: minio`.
### La migration (hors dépôt, par Jobs ponctuels)
1. **Copie à chaud**, MinIO servant toujours : le Job `tools/minio-vers-disque-externe-1` sur pi1 lit le volume Longhorn en lecture seule et `rsync` vers `/mnt/arcodange/minio`, bridé à 15 Mo/s. Il REFUSE si `/mnt/arcodange/longhorn` est absent, donc si ce n'est pas le disque externe. La donnée fait 7,7 Go ; pi1 a 191 Gio libres.
2. **La fusion de cette PR** fait basculer MinIO (Recreate : quelques secondes).
3. **Un `rsync --update`** rattrape ce qui a été écrit entre 1 et 2, puis on vérifie : santé 200, et une affiche et des vignettes servies.
`helm template` est vert pour les deux charts.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Fondateur (2026-09-26) : « Je veux qu'on utilise l'external hard disk » ; « No need for replicas for homelab ».
Longhorn a mis MinIO trois fois en « drive is faulty » (tools#31, #49, #58) ; le volume sert désormais un dossier du
disque USB de pi1, sans moteur ni réplique. Sans le disque, le chemin n'existe pas : MinIO refuse de démarrer au lieu
d'écrire sur la carte SD. Le PVC Longhorn `minio` reste, détaché : le retour arrière est `claim: minio`.
Le projet `tools` autorise désormais `PersistentVolume` (un volume `local` se déclare à la main).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Demande du fondateur (2026-09-26) : « Je veux qu'on utilise l'external hard disk ». Et, la veille : « No need for replicas for homelab. Our staging environment holds no critical files. »
Pourquoi
degraded, avec une seule réplique vivante, sur pi2 (84 % de CPU).Ce que fait la PR
minio/templates/volume-disque-externe.yamlpose un PVlocalsurpi1:/mnt/arcodange/minio, avec un PVCminio-disque-externequi y est lié. Les deux sont enRetainetPrune=false.{{ .Values.minio.persistence.claim }}(=minio-disque-externe). La préférence pour pi3 disparaît, puisque le pod suit son volume.toolsautorisePersistentVolume(cluster-scoped), avec sa raison, commePriorityClassle 2026-09-11.minioreste en place, détaché ; il suffit de remettreclaim: minio.La migration (hors dépôt, par Jobs ponctuels)
tools/minio-vers-disque-externe-1sur pi1 lit le volume Longhorn en lecture seule etrsyncvers/mnt/arcodange/minio, bridé à 15 Mo/s. Il REFUSE si/mnt/arcodange/longhornest absent, donc si ce n'est pas le disque externe. La donnée fait 7,7 Go ; pi1 a 191 Gio libres.rsync --updaterattrape ce qui a été écrit entre 1 et 2, puis on vérifie : santé 200, et une affiche et des vignettes servies.helm templateest vert pour les deux charts.🤖 Generated with Claude Code
localsur /mnt/arcodange/minio