MinIO tournait sans une seule sonde — et 8 charts sur 10 n'étaient jamais construits (#32)
Helm Charts / Detect changed charts (push) Successful in 10s
Helm Charts / Library charts tool (push) Skipped
Helm Charts / Application charts chart (push) Skipped
Helm Charts / Application charts crowdsec (push) Skipped
Helm Charts / Application charts grafana (push) Skipped
Helm Charts / Application charts hashicorp-vault (push) Skipped
Helm Charts / Application charts pgbouncer (push) Skipped
Helm Charts / Application charts pgcat (push) Skipped
Helm Charts / Application charts prometheus (push) Skipped
Helm Charts / Application charts redis (push) Skipped
Helm Charts / Application charts minio (push) Failing after 7s

Co-authored-by: Gabriel Radureau <[email protected]>
This commit was merged in pull request #32.
This commit is contained in:
2026-09-03 00:26:41 +02:00
committed by arcodange
parent 3158f2d013
commit bb3a5cdf5c
11 changed files with 415 additions and 83 deletions
+35 -57
View File
@@ -1,33 +1,41 @@
minio: &minio_config
# -----------------------------------------------------------------------------
# ⚠ Depuis le 2026-09-02, ces valeurs alimentent NOS PROPRES manifestes
# (templates/deployment.yaml & co.), plus un sous-chart. Beaucoup de réglages
# qui vivaient ici sont devenus du manifeste explicite — on dit ci-dessous où
# chacun est parti, pour qu'on ne les cherche pas en vain :
#
# mode / replicas → templates/deployment.yaml (`replicas: 1`)
# serviceAccount.* → templates/serviceaccount.yaml
# ingress / consoleIngress→ templates/ingress.yaml (le public : ingress-public.yaml)
# buckets: [] → n'existe plus : chaque app déclare les siens
# depuis son dépôt, via iac/modules/minio_app
# metrics.serviceMonitor → n'existe plus : pas d'opérateur Prometheus ici,
# le scrape se fait par annotation
#
# ⚠ Et le `post-job` du chart officiel (création de buckets et d'utilisateurs)
# n'existe plus non plus. Il ne faisait rien : `buckets` était vide, et son
# ConfigMap de 25 Ko n'était monté par AUCUN conteneur — vérifié sur le
# Deployment vivant avant de le retirer.
# -----------------------------------------------------------------------------
minio:
# Image officielle MinIO — multi-arch, arm64 inclus (les nœuds sont des Pi 5).
#
# ⚠ LE TAG EST MAINTENANT À NOTRE CHARGE. Il était auparavant choisi par la
# version du sous-chart ; plus personne ne le fait avancer tout seul. C'est le
# prix assumé de l'autonomie du chart — à relever quand on met à jour.
image:
repository: quay.io/minio/minio
tag: RELEASE.2024-12-18T13-15-44Z
pullPolicy: IfNotPresent
# STANDALONE : un seul serveur, un seul volume. La donnée servie ici est
# DÉRIVÉE (le master reste chez l'utilisateur) et Longhorn réplique déjà le
# volume ; l'erasure coding distribué coûterait de la RAM que les Pi n'ont pas
# à dépenser pour ça. `replicas` est ignoré en standalone.
mode: standalone
replicas: 1
# Le rôle Vault du module `app_roles` borne l'authentification au SERVICE
# ACCOUNT nommé comme l'app (`bound_service_account_names = [minio]`) : on
# aligne donc le SA du pod sur ce nom, plutôt que le « minio-sa » par défaut
# du chart amont — un SA pour le pod, le même pour Vault, rien à réconcilier.
serviceAccount:
create: true
name: minio
# Identifiants JAMAIS dans le dépôt : le secret est matérialisé par le
# Vault Secrets Operator depuis kvv2/minio/config (voir resources/ et iac/).
# Le chart lit `.data.rootUser` et `.data.rootPassword` de ce secret.
# Vault Secrets Operator depuis kvv2/minio/config (voir templates/ et iac/).
# Les clés `rootUser` / `rootPassword` gardent les noms qu'attendait le chart
# officiel — les renommer obligerait à toucher Vault pour rien.
existingSecret: minio-config
persistence:
enabled: true
storageClass: longhorn
accessMode: ReadWriteOnce
# 50 Gi ≈ 250 heures de cours au palier « travail » de Kadans (360p,
# 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.
@@ -42,45 +50,15 @@ minio: &minio_config
limits:
memory: 2Gi
# API S3 (les applications parlent ici).
ingress:
enabled: true
ingressClassName: traefik
path: /
hosts:
- s3.arcodange.lab
# Console d'administration (humains).
consoleIngress:
enabled: true
ingressClassName: traefik
path: /
hosts:
- minio.arcodange.lab
# Buckets créés au déploiement. `versioning: false` assumé : ces objets sont
# DÉRIVÉS et re-générables depuis le master local — versionner doublerait le
# stockage pour un filet dont on n'a pas besoin.
# AUCUN bucket ici : chaque app déclare les siens depuis son dépôt, via le
# module `iac/modules/minio_app`.
# ADR : factory/doc/adr/20260726-stockage-objet-minio.md
buckets: []
# Métriques : Prometheus (namespace `tools`) scrape déjà la façade et le
# laptop (ADR-0014 du dossier) — MinIO rejoint la même vue.
metrics:
serviceMonitor:
enabled: false # pas d'opérateur Prometheus ici : scrape par annotation
environment:
# Métriques : Prometheus (namespace `tools`) scrape déjà la façade et le
# laptop (ADR-0014 du dossier) — MinIO rejoint la même vue.
#
# ⚠ Cette variable était déclarée DEUX FOIS sur le Deployment rendu par le
# sous-chart (une fois par le chart, une fois par nos `environment`) —
# `kubectl` le signalait à chaque application : « hides previous definition
# of MINIO_PROMETHEUS_AUTH_TYPE ». Rendre le manifeste nous-mêmes règle ça.
MINIO_PROMETHEUS_AUTH_TYPE: "public"
# CORS : le navigateur téléverse directement (URL présignées) — origines
# EXACTES, jamais « * » : une URL qui fuite serait sinon rejouable partout.
MINIO_API_CORS_ALLOW_ORIGIN: "https://kadans.arcodange.fr,https://kadans.arcodange.lab"
tool:
# kind: 'SubChart' or 'HelmChart', if subchart then uncomment Chart.yaml dependency, else comment and use tool library with helm chart template
kind: 'SubChart'
repo: https://charts.min.io/
chart: minio
version: 5.4.0
values: *minio_config