Aller au contenu

Audit du dépôt cluster — grille & passages

Doctrine : ADR 0058. L’audit se sépare en une GRILLE permanente (ce document : dimensions, critères, méthode — qui ne périme pas) et des PASSAGES datés (l’application de la grille à une date, avec les notes /5 — comme RESULTS.md). Un passage renvoie aux ADR pour les pourquoi (il ne les paraphrase pas) et ses manques deviennent des issues.

Chaque passage applique la grille ci-dessous à une date. On garde l’historique (on voit l’évolution des notes) ; un nouveau passage n’écrase pas les précédents.

PassageSynthèseDéclencheur
2026-05-29premier passage (13 dimensions notées)audit initial du dépôt
2026-06-13 — périmètres atomiquescartographie multi-agents (5 agents) : 23 composants + 30 arêtesavant l’encodage du graphe (ADR 0066)
2026-06-13 — arêtes de stockageéventail (16 lecteurs + synthèse adversariale) : 5 arêtes blocavant roundtrip.py (Lot 1)
2026-06-15 — outils CNCF / Kyvernoéventail + revue adversariale (60 agents) : Kyverno CLI en têteréflexion d’adoption (ADR 0075)
2026-06-16 — notations de cybersécuritéScorecard / CIS / NIST-ANSSI : 3 référentiels applicablesissue #354 (manques actionnables)
2026-06-16 — notations & normes externes (hors cyber)FAIR / OpenSSF-Badge / DORA / OpenGitOps / SemVer-Changelog-CommitsConv / Diátaxis / WCAG / REUSE / ISO : alignement de fait, 4 référentiels notés non câblésnote sœur de la cyber (mêmes manques)
2026-06-19 — évaluation Kubescape (NSA)scan réel + évaluation multi-angle adversariale : NE PAS câbler (redondant Trivy/Kyverno) ; vraie dette = resource limitsréflexion d’adoption (Scorecard-like infra)
2026-06-20 — documentation (194 .md)audit doc 14 dimensions (éventail multi-agents) + Diátaxis + comparatif atlas : doc forte ; doc-rot corrigé ; gate --stats-check livréerevue exhaustive de la documentation
2026-06-22 — Best Practices Badge (answer-sheet)feuille de réponses « passing » prête à coller dans best.openssf.org : ~50 Met, ~12 N/A, 0 Unmet (badge validé, projet 13301)soumission du badge OpenSSF
2026-06-22 — faisabilité silver & goldgold hors d’atteinte (mono-mainteneur : 5 MUST « 2 personnes »/coverage) ; silver atteignable mais déclaratif → on reste à passing (ADR 0061/0080)suite du badge passing obtenu
2026-06-24 — vérification poussée prod dirqualaudit runtime non destructif (6 dims, éventail multi-agents + vérif adversariale) : prod saine (contrat 18/18, Ceph HEALTH_OK, 0 pod KO) ; 31 findings (0 critique, 8 majeurs) → 21 issuesétat de prêt de la prod + manques actionnables
2026-06-30 — portabilité du code (OS poste↔nœuds, arch x86↔arm)audit statique 2 axes (OS + architecture, vérif adversariale, 3 faux positifs écartés) : code sain pour son périmètre ; périmètre OS assumé mais non acté en ADR ; 1 seul vrai trou = .gitattributes absent (CRLF) ; arch arm64↔x86 bien dérivée → ADR 0098 + 1 issuepérimètre OS/arch à assumer dans la doc

⚠️ Le passage du 2026-05-29 est antérieur à l’installation de production et à ~45 ADR ultérieurs : ses notes /5 reflètent l’état à cette date, pas l’état courant. Un futur passage les réactualisera (sur jalon — cf. Cadence).

Une seule famille de passages — la méthode est une propriété

Section intitulée « Une seule famille de passages — la méthode est une propriété »

Un passage peut appliquer la grille /5 complète (comme le 2026-05-29) ou cibler un angle (un référentiel externe, une famille d’outils) ; il peut être conduit à la main ou issu d’un workflow multi-agents (cartographie en éventail, revue adversariale). Ces variantes ne sont pas des familles distinctes : être issu d’un workflow est une propriété de méthode (champ Type / Éventail de l’en-tête), pas un type d’artefact à part (ADR 0078, qui supersède l’ADR 0067). Tous vivent côte à côte ici, datés et non réécrits ; tous renvoient aux ADR pour les pourquoi et leurs manques deviennent des issues.

Les dimensions auditées. Chaque passage les note /5 ; la grille n’en dit que le quoi et le comment, jamais le où on en est.

#DimensionCe qu’on mesure
1Bonnes pratiques IaC & structureorganisation des dossiers, conventions, hygiène, idempotence
2Tests multi-niveaux & bancbanc d’essai, scénarios, couverture, gates, preuves consignées
3Lint, format & chaîne qualitélinters, parité CI ↔ hooks, scanners de posture
4Documentation (néophyte, code, site)pédagogie/glossaire, doc dans le code/ADR, site VitePress
5Reproductibilité & pinningpinning des versions, déterminisme, supply chain
6Sécuritédurcissement OS/réseau, plan de contrôle, secrets, hypothèses
7Gouvernance & licencelicence, gouvernance OSS, citation, versionnement
8Opérabilité, observabilité, résilienceobservabilité, sauvegarde/DR, HA, upgrades, capacité, RGPD
9Langage des scriptsadéquation outil↔action, testabilité (bats/pytest)
10Dispersion CLI vs point d’entréescripts dispersés, orchestrateur, parcours d’entrée
11Logiciels open sourcepertinence des composants, gestion du risque (CVE, bump, digests)

Un passage applique cette méthode :

  1. Exécution réelle de la chaîne qualité : prettier, yamllint, shellcheck, ansible-lint (profil production), kubeconform, jscpd, gitleaks — les résultats factuels (et non « faut-il linter ») fondent les notes.
  2. Lecture en profondeur du code et de la documentation.
  3. Vérification adversariale de chaque constat majeur : un second relecteur tente de réfuter le constat avant qu’il ne soit retenu ; les gravités sont celles après réfutation.
  4. Renvoi aux ADR : un constat qui touche un choix tracé cite l’ADR correspondant (le pourquoi a un propriétaire unique, l’ADR), il ne le ré-explique pas.
  5. Manques → issues : chaque constat actionnable devient (ou référence) une issue ; le passage les liste et les lie.

Un passage se déclenche sur événement (jalon majeur : installation prod, refonte) ou échéance, pas en continu (re-noter coûte un passage complet). À l’image de la fraîcheur des preuves de banc (ADR 0042), un garde-fou pourra signaler un passage trop ancien (hors scope de l’ADR 0058).