MinIO quitte Longhorn pour le disque externe de pi1 : un volume local sur /mnt/arcodange/minio
Helm Charts / Detect changed charts (pull_request) Successful in 1m32s
Helm Charts / Library charts tool (pull_request) Skipped
Helm Charts / Application charts alloy (pull_request) Skipped
Helm Charts / Application charts crowdsec (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 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 chart (pull_request) Successful in 24s
Helm Charts / Application charts minio (pull_request) Successful in 40s
Helm Charts / Detect changed charts (pull_request) Successful in 1m32s
Helm Charts / Library charts tool (pull_request) Skipped
Helm Charts / Application charts alloy (pull_request) Skipped
Helm Charts / Application charts crowdsec (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 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 chart (pull_request) Successful in 24s
Helm Charts / Application charts minio (pull_request) Successful in 40s
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]>
This commit is contained in:
@@ -40,3 +40,11 @@ spec:
|
|||||||
# qu'ordonner l'éviction et la préemption.
|
# qu'ordonner l'éviction et la préemption.
|
||||||
- group: 'scheduling.k8s.io'
|
- group: 'scheduling.k8s.io'
|
||||||
kind: PriorityClass
|
kind: PriorityClass
|
||||||
|
# PersistentVolume — ajouté le 2026-09-26 pour une seule raison : le volume de MinIO
|
||||||
|
# quitte Longhorn pour le DISQUE EXTERNE de pi1 (fondateur : « Je veux qu'on utilise
|
||||||
|
# l'external hard disk » ; « No need for replicas for homelab »). Un volume `local`
|
||||||
|
# se déclare à la main (aucun provisionneur ne le crée), et un PV est cluster-scoped.
|
||||||
|
# Il porte de la donnée : `minio/templates/volume-disque-externe.yaml` le pose en
|
||||||
|
# `Retain` et `Prune=false`, pour qu'aucune synchronisation ne puisse l'effacer.
|
||||||
|
- group: ''
|
||||||
|
kind: PersistentVolume
|
||||||
|
|||||||
@@ -77,14 +77,9 @@ spec:
|
|||||||
- key: kubernetes.io/hostname
|
- key: kubernetes.io/hostname
|
||||||
operator: NotIn
|
operator: NotIn
|
||||||
values: [pi2]
|
values: [pi2]
|
||||||
preferredDuringSchedulingIgnoredDuringExecution:
|
# ⚠ Plus de préférence pour pi3 (2026-09-26) : le volume `local` du disque
|
||||||
# pi3 est le moins chargé en mémoire (58 % au 2026-09-15, pi1 81 %).
|
# externe fixe le nœud (values.yaml, `disqueExterne.noeud`) — le pod suit
|
||||||
- weight: 50
|
# son volume.
|
||||||
preference:
|
|
||||||
matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values: [pi3]
|
|
||||||
securityContext:
|
securityContext:
|
||||||
# Repris tel quel : la donnée déjà écrite sur le volume appartient à
|
# Repris tel quel : la donnée déjà écrite sur le volume appartient à
|
||||||
# 1000:1000. Changer ces valeurs rendrait le bucket illisible.
|
# 1000:1000. Changer ces valeurs rendrait le bucket illisible.
|
||||||
@@ -195,7 +190,7 @@ spec:
|
|||||||
volumes:
|
volumes:
|
||||||
- name: export
|
- name: export
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: minio
|
claimName: {{ .Values.minio.persistence.claim }}
|
||||||
- name: minio-user
|
- name: minio-user
|
||||||
secret:
|
secret:
|
||||||
secretName: {{ .Values.minio.existingSecret }}
|
secretName: {{ .Values.minio.existingSecret }}
|
||||||
|
|||||||
@@ -0,0 +1,67 @@
|
|||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# LE VOLUME DE MINIO SUR LE DISQUE EXTERNE (2026-09-26).
|
||||||
|
#
|
||||||
|
# Un volume `local` : un dossier du disque USB de un nœud, sans provisionneur,
|
||||||
|
# sans moteur, sans réplique. Il remplace le volume Longhorn (templates/pvc.yaml,
|
||||||
|
# gardé détaché pour le retour arrière) — voir `persistence` dans values.yaml.
|
||||||
|
#
|
||||||
|
# ⚠ `Retain` ET `Prune=false` : ce PV porte les objets du magasin. Ni la
|
||||||
|
# suppression du PVC, ni une synchronisation ArgoCD ne doivent pouvoir l'effacer.
|
||||||
|
#
|
||||||
|
# ⚠ Le chemin DOIT exister avant le premier démarrage (un volume `local` ne le
|
||||||
|
# crée pas) : il est rempli par la copie de la migration. S'il manque — pi1
|
||||||
|
# démarré sans son disque, le dossier `/mnt/arcodange` vide de la carte SD —, le
|
||||||
|
# pod échoue au montage : c'est voulu, on n'écrit jamais le magasin sur la carte.
|
||||||
|
#
|
||||||
|
# ⚠ `volumeName` est posé EXPRÈS ici (contrairement à templates/pvc.yaml) : ce
|
||||||
|
# PVC ne doit se lier qu'à CE volume, jamais à un autre de la même classe.
|
||||||
|
# La classe `disque-externe` n'a pas d'objet StorageClass : la liaison est
|
||||||
|
# statique, les deux noms suffisent.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: minio-disque-externe
|
||||||
|
labels:
|
||||||
|
app: minio
|
||||||
|
release: minio
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-options: Prune=false
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: {{ .Values.minio.persistence.size }}
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
storageClassName: disque-externe
|
||||||
|
volumeMode: Filesystem
|
||||||
|
local:
|
||||||
|
path: {{ .Values.minio.persistence.disqueExterne.chemin }}
|
||||||
|
nodeAffinity:
|
||||||
|
required:
|
||||||
|
nodeSelectorTerms:
|
||||||
|
- matchExpressions:
|
||||||
|
- key: kubernetes.io/hostname
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- {{ .Values.minio.persistence.disqueExterne.noeud }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: minio-disque-externe
|
||||||
|
namespace: tools
|
||||||
|
labels:
|
||||||
|
app: minio
|
||||||
|
release: minio
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-options: Prune=false
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: disque-externe
|
||||||
|
volumeName: minio-disque-externe
|
||||||
|
volumeMode: Filesystem
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: {{ .Values.minio.persistence.size }}
|
||||||
@@ -40,6 +40,19 @@ minio:
|
|||||||
# 3,4 Mo/min — ADR-018 du front). Longhorn réplique ce volume sur les
|
# 3,4 Mo/min — ADR-018 du front). Longhorn réplique ce volume sur les
|
||||||
# nœuds : compter ×3 sur la capacité du cluster avant d'augmenter.
|
# nœuds : compter ×3 sur la capacité du cluster avant d'augmenter.
|
||||||
size: 50Gi
|
size: 50Gi
|
||||||
|
# ⚡ LE VOLUME SERVI (2026-09-26) : le DISQUE EXTERNE de pi1, plus Longhorn.
|
||||||
|
# Fondateur : « Je veux qu'on utilise l'external hard disk » ; « No need for
|
||||||
|
# replicas for homelab. Our staging environment holds no critical files. »
|
||||||
|
# Longhorn a mis MinIO trois fois en « drive is faulty » (tools#31, #49, #58) ;
|
||||||
|
# un volume `local` sur le disque USB n'a ni moteur, ni réplique, ni iSCSI.
|
||||||
|
# ⚠ Si pi1 démarre SANS son disque, `chemin` n'existe pas sur la carte SD :
|
||||||
|
# MinIO REFUSE de démarrer au lieu d'écrire sur la carte en silence.
|
||||||
|
# ⚠ Le PVC Longhorn `minio` (templates/pvc.yaml) reste là, détaché : c'est
|
||||||
|
# le retour arrière — remettre `claim: minio`.
|
||||||
|
claim: minio-disque-externe
|
||||||
|
disqueExterne:
|
||||||
|
noeud: pi1
|
||||||
|
chemin: /mnt/arcodange/minio
|
||||||
|
|
||||||
# Des Pi 5 à 8 Go partagés avec le reste de `tools` : on borne franchement.
|
# Des Pi 5 à 8 Go partagés avec le reste de `tools` : on borne franchement.
|
||||||
# MinIO standalone est frugal ; la limite protège les voisins, pas MinIO.
|
# MinIO standalone est frugal ; la limite protège les voisins, pas MinIO.
|
||||||
|
|||||||
Reference in New Issue
Block a user