Projet Elena

Cahier des charges · OPS

Socle, files de jobs et reprises explicites

Dernière modification du document source :

Date déclarée dans le document :

Document de référence présenté dans son intégralité. Le cahier des charges décrit le périmètre prévu ; il ne constitue pas une preuve de recette.

Ces prescriptions fixent le runtime produit, le contrat d’artefact et les traitements asynchrones. La topologie Valkey ci-dessous concerne le déploiement local dédié de TEC-OPS-002 ; elle ne tranche pas l’infrastructure de qualification ou de production, les SLO, les capacités ni les RPO/RTO.

TEC-OPS-003 — Runtime FrankenPHP sous Octane

TEC-OPS-004 — Version et promotion immuable du produit

Stockage objet RustFS — retrait définitif de MinIO

RustFS est le moteur de stockage objet S3 de la stack Elena (DEC-0211 remplace DEC-0210). MinIO serveur et son client mc doivent être retirés, quel que soit leur registre, y compris Quay : aucune dépendance active, option ou repli ne les conserve. Le périmètre comprend développement local, CI/E2E, qualification, production, scripts d’initialisation/vérification/exploitation, exemples actifs et images/templates des workspaces Jean-*. Les archives et décisions remplacées restent historiques, sans prescrire une stack active. Ce choix ne fixe ni dimensionnement ni topologie de production.

Les images RustFS et outils de remplacement proviennent de sources officielles vérifiées, avec version qualifiée et digest SHA-256 épinglé pour chaque image ; aucun latest ni digest inventé. Sources complètes, versions et compatibilités retenues sont documentées dans la réalisation. Remplacer mc par des commandes S3 standard (par exemple AWS CLI/SDK) et, pour l’administration non S3, par les interfaces RustFS effectivement qualifiées. La compatibilité de l’API administrative MinIO n’est pas présumée ; l’annonce S3 ne vaut pas recette des opérations réellement consommées.

La migration couvre endpoints, noms de services/DNS, variables, secrets, politiques, buckets, sondes, volumes, scripts, tests et documentation. Préserver les contrats applicatifs, l’isolation par déploiement (TEC-OPS-002) et la séparation de l’audit (TEC-SEC-001 à 004). Les accès applicatifs n’utilisent pas les identifiants administrateur ; moindre privilège et absence de secrets dans les preuves restent requis.

Avant bascule, inventorier objets, versions, métadonnées, politiques, rétentions et verrous ; sauvegarder et prouver la restauration. Aucun montage direct d’un ancien volume MinIO dans RustFS n’est présumé compatible. Migrer par une procédure qualifiée, vérifier intégrité et exhaustivité puis basculer les consommateurs. Une réinitialisation n’est admise que pour des données de test explicitement jetables ; aucun effacement implicite des volumes persistants. Prévoir interruption/reprise et récupération des données en cas d’échec, sans MinIO comme cible ou fallback permanent. Conserver les anciennes archives protégées jusqu’à migration vérifiée et échéance légale de protection, sans service MinIO actif dans la stack cible.

Versioning, WORM en mode conformité, rétention, réplication indépendante et sauvegardes restent obligatoires là où prescrits. Qualifier la version RustFS retenue sur ces garanties, notamment refus de modification/suppression et de réduction de rétention, y compris avec privilèges élevés. Un manque de capacité bloque la bascule de l’usage concerné et appelle une escalade explicite ; il n’autorise ni MinIO en cible ni réduction des exigences. Le choix RustFS ne vaut pas levée de la porte de conformité avant production.

Jean Bave coordonne l’inventaire des branches actives et environnements isolés. Chaque Jean-* concerné applique la nouvelle infrastructure, reconstruit images/templates et recrée les services si nécessaire, sans détruire ses données. Distinguer correction source, publication de l’artefact, droits de plateforme, application à chaque espace et preuve après application : un rebuild local ne livre pas les autres agents. Le rebuild d’infrastructure ne déroge pas à la promotion immuable de l’image produit. Annuler les tickets de simple changement de registre non exécutés ; conserver les livraisons déjà réalisées comme baselines historiques à migrer. Vérification : complément RustFS de VER-OPS-003.

TEC-OPS-005 — Deux services Valkey locaux par déploiement

TEC-OPS-006 — Reprises explicites des jobs

TEC-OPS-007 — Retrait de la chaîne de signature et SBOM de livraison

Points codés connus du retrait (informatifs)

Au relevé produit e71531c9, elena:.gitlab-ci.yml porte les jobs image-sbom, sign-image, verify-image et le gabarit .release-supply-chain ; le script dédié est elena:.gitlab/ci/verify-release-image.sh. Les reports associés comprennent image-sbom.cdx.json, image-signature-verification.json, image-attestation-verification.json et verified-image.env. Les contrôles de chart/digest et authentifications registre partagés conservent leur fonction indépendante ; retirer leur dépendance à cette chaîne, sans les supprimer en bloc. Ces références orientent la mise en conformité ultérieure ; elles ne créent aucune tâche et ne prouvent pas que le retrait produit est effectué.

TEC-OPS-008 — Secrets de build éphémères sous BuildKit

Contrat des sondes

Contrat Question posée Effet attendu
Liveness Le processus est-il vivant ? Redémarrage seulement sur échec du processus, pas sur panne de dépendance.
Readiness Le rôle ou la capacité peut-il servir ? Retrait du trafic ou refus de la capacité concernée selon la matrice déclarée.
Diagnostic Quelles dépendances sont disponibles ou dégradées ? Information interne protégée ; aucun redémarrage direct.

TEC-OPS-009 — Vivacité, disponibilité et diagnostic par rôle

TEC-OPS-013 — Limites PHP du runtime conformes aux limites applicatives de dépôt

TEC-OPS-014 — Suite E2E complète exécutée chaque nuit sur la branche de développement