docs(minio) — le raisonnement part dans l'ADR, le code garde ce qui protège
Helm Charts / Detect changed charts (push) Successful in 22s
Helm Charts / Detect changed charts (pull_request) Successful in 16s
MinIO / Auth with gitea for vault (push) Failing after 8m33s
MinIO / Tofu - minio IAC (push) Has been skipped
MinIO / Auth with gitea for vault (pull_request) Failing after 8m32s
MinIO / Tofu - minio IAC (pull_request) Has been skipped
Hashicorp Vault / Auth with gitea for vault (pull_request) Failing after 8m32s
Hashicorp Vault / Tofu - Vault IAC (pull_request) Has been skipped
Helm Charts / Library charts tool (push) Has been skipped
Helm Charts / Library charts tool (pull_request) Has been skipped
Hashicorp Vault / Auth with gitea for vault (push) Failing after 8m31s
Hashicorp Vault / Tofu - Vault IAC (push) Has been skipped
Helm Charts / Application charts pgcat (push) Has been skipped
Helm Charts / Application charts pgcat (pull_request) Has been skipped

Les décisions de conception (qui déclare, qui détient, pourquoi les octets ne
passent pas par l'API) vivent désormais dans
`factory/doc/adr/20260726-stockage-objet-minio.md`.

Le code ne garde que ce qu'un relecteur ne peut pas deviner et qui l'empêcherait
de casser quelque chose : l'absence VOLONTAIRE de s3:GetObject/PutObject dans la
politique du provisionneur, l'absence VOLONTAIRE de basic-auth sur l'ingress
S3, le caractère inconditionnel de la règle Vault, et l'avertissement sur les
noms d'actions MinIO non éprouvés. Chaque fichier pointe l'ADR.

283 → 230 lignes sur minio/iac. tofu fmt propre, tofu validate réussi sur les
deux racines.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01CoafGWmRVESaWX819USUUA
This commit is contained in:
2026-07-26 10:19:28 +02:00
co-authored by Claude Opus 5
parent ec71571b98
commit 7074a94d7e
9 changed files with 43 additions and 125 deletions
+6 -14
View File
@@ -1,19 +1,11 @@
# Exposition PUBLIQUE s3.arcodange.fr, EN PLUS du .lab interne (qui reste
# inchangé). Même motif que `grafana/templates/ingress-public.yaml` : entrypoint
# `web` — le TLS est terminé en amont par le tunnel Cloudflare (wildcard
# *.arcodange.fr → traefik.kube-system.svc:80) — et middleware crowdsec.
#
# POURQUOI c'est nécessaire (et pas un confort) : la PWA est servie en
# https://kadans.arcodange.fr. Un navigateur REFUSE une requête vers http://
# depuis une page https (contenu mixte), et `.lab` n'est de toute façon pas
# résolvable hors du LAN. Sans cet ingress, le téléversement d'une vidéo ne peut
# marcher NI en déplacement, NI même à la maison — c'est le maillon qui manque
# à kadans-api#23 (URL présignées).
# Exposition PUBLIQUE s3.arcodange.fr — TLS terminé par le tunnel Cloudflare,
# middleware crowdsec. Le `.lab` interne reste inchangé.
#
# ⚠ PAS de basic-auth ici, contrairement à kadans-public : une requête S3 porte
# sa propre signature (SigV4) dans ses en-têtes ou son URL. Un défi HTTP Basic
# casserait le PUT présigné du navigateur, qui n'a aucun moyen d'y répondre.
# L'autorisation vient de l'URL signée, avec sa durée de vie courte.
# sa propre signature (SigV4), et un défi HTTP Basic casserait le PUT présigné
# auquel le navigateur ne peut pas répondre.
#
# ADR : factory/doc/adr/20260726-stockage-objet-minio.md
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata: