[28] Mise en place MiniO #56

Merged
lenaic merged 4 commits from justine/28-installation-MiniO into develop 2026-09-02 08:58:46 +00:00
Member

Ce que ça change

Installation de MiniO, création des buckets et des accès

Closes #

Preuve


Relecture

  • Un pair a relu et laissé un commentaire, même court
  • Ses remarques sont traitées, ou une réponse explique pourquoi elles ne le sont pas

Ce qui suit le code

  • docs/runbooks/ mis à jour, un geste d'exploitation a changé
  • docs/adr/ complété, une décision structurante a été prise
  • docs/journal.md complété, un incident a été rencontré
  • Une nouvelle variable d'environnement est apparue, elle est dans .env.example

Où regarder en priorité

docker-compose, init-buckets et genere-identifiants

## Ce que ça change Installation de MiniO, création des buckets et des accès Closes # ## Preuve <!-- Ce que la chaîne d'intégration ne peut pas vérifier à ma place : sortie de commande, capture d'écran, journal d'exécution. La chaîne contrôle déjà le format, les tests et l'absence de secrets, inutile de le répéter ici. --> ``` ``` ## Relecture - [x] Un pair a relu et laissé un commentaire, même court - [x] Ses remarques sont traitées, ou une réponse explique pourquoi elles ne le sont pas ## Ce qui suit le code <!-- Ne cocher que ce qui s'applique, supprimer le reste. --> - [x] `docs/runbooks/` mis à jour, un geste d'exploitation a changé - [x] `docs/adr/` complété, une décision structurante a été prise - [x] `docs/journal.md` complété, un incident a été rencontré - [x] Une nouvelle variable d'environnement est apparue, elle est dans `.env.example` ## Où regarder en priorité docker-compose, init-buckets et genere-identifiants
[28] Mise en place MiniO
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 3s
Intégration / Tests unitaires (pull_request) Successful in 2s
Intégration / Aucun secret commité (pull_request) Successful in 2s
28f07d0130
justine added this to the EnerVision project 2026-09-01 14:37:12 +00:00
@ -0,0 +12,4 @@
# La boucle locale, et rien d'autre. Sans le préfixe 127.0.0.1, Docker
# publie sur 0.0.0.0 et perce le pare-feu : la mesure brute serait
# lisible depuis la salle. C'est le critère ENF-02 de ce service.
- "127.0.0.1:9000:9000"
Member

Pourquoi 2 ports ?

Pourquoi 2 ports ?
Author
Member

9000 pour l'API S3 et 9001 pour l'interface web

9000 pour l'API S3 et 9001 pour l'interface web
justine marked this conversation as resolved
@ -0,0 +32,4 @@
env_file:
- /etc/enervision/minio.env
environment:
RETENTION_BRONZE_JOURS: "${RETENTION_BRONZE_JOURS:-180}"
Member

Pourquoi garder la data de moins bonne qualité plus longtemps que les données de meilleur qualité ?

Pourquoi garder la data de moins bonne qualité plus longtemps que les données de meilleur qualité ?
Author
Member

Car on pourra toujours refaire la silver si on a sa source de base : la bronze

Car on pourra toujours refaire la silver si on a sa source de base : la bronze
justine marked this conversation as resolved
lenaic left a comment

Relu en détail, c'est du bon travail : écoute sur la boucle locale, identifiants générés en 0600 hors du dépôt, initialisation idempotente, et des tests qui vérifient les critères plutôt que de les paraphraser.

Trois choses avant fusion.

Les commandes mc du manuel ne peuvent pas s'exécuter telles quelles : mc n'est pas installé sur l'hôte et l'alias local n'existe qu'à l'intérieur des conteneurs. Ça touche la vérification de rétention, la sauvegarde et deux lignes du tableau de panne. Il faut les passer en docker exec enervision-minio mc ..., ou installer le client sur le serveur.

Dans init-buckets.sh, si les deux syntaxes mc ilm échouent, le script affiche un message et sort en 0 : un déploiement sans rétention posée est alors considéré comme réussi.

Enfin, boto3>=1.35 entrera en conflit avec la #57, qui passe tout requirements-dev.txt en versions exactes pour que l'inventaire des composants reste corrélable aux CVE. Selon l'ordre de fusion, l'une des deux devra reprendre la ligne.

Détail, quelques ENF sont décalées : l'écoute locale relève de l'ENF-14, la continuité de l'ENF-05, la reconstituabilité de l'ENF-07. Tes EF, elles, sont justes.

Le reste n'est pas encore sur le serveur, ce qui est normal à ce stade. Au déploiement, joins la sortie de pytest tests/integration/test_stockage_minio.py -v au #28 pour pouvoir le fermer.

Relu en détail, c'est du bon travail : écoute sur la boucle locale, identifiants générés en 0600 hors du dépôt, initialisation idempotente, et des tests qui vérifient les critères plutôt que de les paraphraser. Trois choses avant fusion. Les commandes `mc` du manuel ne peuvent pas s'exécuter telles quelles : `mc` n'est pas installé sur l'hôte et l'alias `local` n'existe qu'à l'intérieur des conteneurs. Ça touche la vérification de rétention, la sauvegarde et deux lignes du tableau de panne. Il faut les passer en `docker exec enervision-minio mc ...`, ou installer le client sur le serveur. Dans `init-buckets.sh`, si les deux syntaxes `mc ilm` échouent, le script affiche un message et sort en 0 : un déploiement sans rétention posée est alors considéré comme réussi. Enfin, `boto3>=1.35` entrera en conflit avec la #57, qui passe tout `requirements-dev.txt` en versions exactes pour que l'inventaire des composants reste corrélable aux CVE. Selon l'ordre de fusion, l'une des deux devra reprendre la ligne. Détail, quelques ENF sont décalées : l'écoute locale relève de l'ENF-14, la continuité de l'ENF-05, la reconstituabilité de l'ENF-07. Tes EF, elles, sont justes. Le reste n'est pas encore sur le serveur, ce qui est normal à ce stade. Au déploiement, joins la sortie de `pytest tests/integration/test_stockage_minio.py -v` au #28 pour pouvoir le fermer.
[28] Ajout installation mc
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 3s
Intégration / Tests unitaires (pull_request) Successful in 3s
Intégration / Aucun secret commité (pull_request) Successful in 3s
56e3bbe6b7
[28] MàJ ENF & version stricte boto3
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 3s
Intégration / Tests unitaires (pull_request) Successful in 3s
Intégration / Aucun secret commité (pull_request) Successful in 3s
9e712021b9
lenaic approved these changes 2026-09-02 08:54:29 +00:00
lenaic left a comment

Corrections en place. ilm import rend le rejeu idempotent au lieu d'empiler les regles, et la verification qui suit fait echouer le script plutot que de laisser passer un deploiement sans retention. L'installation du client est documentee, avec la remarque sur la deuxieme copie du secret. Le .gitattributes evitera un bad interpreter a ceux qui poussent depuis Windows.

J'ai reporte develop dans la branche : boto3 passe en version exacte comme le reste de l'outillage, sans quoi l'inventaire des composants sort sans numero de version.

Il reste a deployer sur le serveur et a joindre la sortie des tests au #28 pour le fermer.

Corrections en place. `ilm import` rend le rejeu idempotent au lieu d'empiler les regles, et la verification qui suit fait echouer le script plutot que de laisser passer un deploiement sans retention. L'installation du client est documentee, avec la remarque sur la deuxieme copie du secret. Le .gitattributes evitera un bad interpreter a ceux qui poussent depuis Windows. J'ai reporte develop dans la branche : boto3 passe en version exacte comme le reste de l'outillage, sans quoi l'inventaire des composants sort sans numero de version. Il reste a deployer sur le serveur et a joindre la sortie des tests au #28 pour le fermer.
Merge develop, boto3 epingle comme le reste de l'outillage
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 11s
Intégration / Tests unitaires et couverture (pull_request) Successful in 11s
Intégration / Dépendances du tableau de bord (pull_request) Successful in 5s
Intégration / Images épinglées par version (pull_request) Successful in 3s
Intégration / Aucun secret commité (pull_request) Successful in 3s
Intégration / Dépendances Python et inventaire applicatif (pull_request) Successful in 3m35s
31286486b6
La liste passe en versions exactes cote develop : boto3 y entre au
meme format, sans quoi l'inventaire des composants produit un
composant sans numero de version.
lenaic approved these changes 2026-09-02 08:54:54 +00:00
lenaic left a comment

Corrections en place. ilm import rend le rejeu idempotent au lieu d'empiler les règles, et la vérification qui suit fait échouer le script plutôt que de laisser passer un déploiement sans rétention. Le .gitattributes évitera un bad interpreter à ceux qui poussent depuis Windows.

J'ai reporté develop dans la branche : boto3 passe en version exacte comme le reste de l'outillage, sans quoi l'inventaire des composants sort sans numéro de version.

Il reste à déployer sur le serveur et à joindre la sortie des tests au #28 pour le fermer.

Corrections en place. `ilm import` rend le rejeu idempotent au lieu d'empiler les règles, et la vérification qui suit fait échouer le script plutôt que de laisser passer un déploiement sans rétention. Le `.gitattributes` évitera un `bad interpreter` à ceux qui poussent depuis Windows. J'ai reporté `develop` dans la branche : `boto3` passe en version exacte comme le reste de l'outillage, sans quoi l'inventaire des composants sort sans numéro de version. Il reste à déployer sur le serveur et à joindre la sortie des tests au #28 pour le fermer.
lenaic merged commit bb412fc8b8 into develop 2026-09-02 08:58:46 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
g2/enervision!56
No description provided.