0fbca06d3d
Cartographie complète (liste_taches/coherence_taches), briefs tacheN + gates validation_tacheN, design tâche 2 (docs/design/tache2/), specs/plans jalon 1-2 et tâche 1.9/2 (Phase 1, Phase 2, SJ-0→3). Validations consignées (1.9 ✅, 2-8 🟡). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.6 KiB
5.6 KiB
80 — Découpage en sous-jalons implémentables
Livrable §4.9. Chaque sous-jalon = un cycle spec → plan → implémentation, indépendamment testable, sans casser le jalon 1. Priorisé. Prêt pour
writing-plans.
Ordre recommandé et dépendances
SJ-0 (socle types/réduction) ──► SJ-1 (APT update/analyse) ──► SJ-2 (APT upgrade + diff)
│
▼
SJ-3 (reboot vérifié)
SJ-4 (Docker scan/inspect) ──► SJ-5 (Docker pull-check) ──► SJ-6 (Docker apply/prune/down)
SJ-7 (profils OS Proxmox/RPi) [transversal, après SJ-1]
SJ-8 (post-install bootstrap/identité) [après SJ-0]
SJ-9 (post-install Docker officiel / partages / VM tools) [après SJ-8]
SJ-0 — Socle : types étendus + réduction + résolution de profil
- Contenu : étendre
shared/types.ts(unions + blocs optionnels, cf.40-contrats-json.md), étendre le réducteur (reduceLines.tsajoutant les préfixes Docker), ajouter le mécanismeresolveTemplate(action, osFamily)avec fallbackbase, ajouterschemaVersion. - Testable : tests unitaires de réduction (APT + Docker), tests de résolution de template, validation qu'un snapshot/exécution jalon 1 reste typé valide.
- Risque : faible (additif). Priorité : 1 (prérequis de tout le reste).
SJ-1 — APT update/analyse (snapshot enrichi)
- Contenu :
apt/update-analyze.sh.tpl(update + simulations upgrade/dist-upgrade + held + reboot-check), parsing des sections,AptSnapshotDetailenrichi, statutok|updates_available|warning|error. Bascule du refresh dessus (en gardantcheck.sh.tpljusqu'à validation). - Testable : fixtures de sortie APT → snapshot ; non-régression du refresh jalon 1.
- Risque : faible-moyen (toucher le refresh). Priorité : 2.
SJ-2 — APT upgrade / full-upgrade / autoremove / clean + diff dpkg réel
- Contenu : templates
upgrade,full-upgrade(enrichi diff),autoremove,clean; captureDPKG_BEFORE/AFTER; calcul du diff réel (AptExecutionResult) ; timeout d'inactivité +human_interaction_required; confirmations UI pour suppressions. - Testable : fixtures dpkg before/after → diff ; détection des suppressions/held.
- Risque : moyen (actions destructives). Priorité : 3.
SJ-3 — Reboot vérifié (boot_id + délai adaptatif)
- Contenu :
apt/reboot.sh.tpl(capture boot_id) + orchestration backend (attente coupure, reconnexion, relecture boot_id),RebootResult, délai adaptatif par machine. Conserve l'actionrebootjalon 1. - Testable : simulation des états (
boot_id_unchanged,machine_did_not_return,timeout). - Risque : moyen. Priorité : 4.
SJ-4 — Docker scan + inspect (passifs)
- Contenu :
docker/scan-compose.sh.tpl,docker/inspect-compose.sh.tpl; config machinedockerEnabled/composeRoots/composeScanDepth; cyclecandidate/enabled; tablesdocker_*. Détection labels en complément. - Testable : fixtures de scan → liste de stacks ; validation
compose config --quiet. - Risque : faible (passif). Priorité : 5.
SJ-5 — Docker pull-check + comparaison
- Contenu :
docker/pull-check.sh.tpl; comparaison déterministe ID/digest/labels OCI ;DockerSnapshot/services ; dédup Docker ; refresh Docker séparé (non auto). - Testable : fixtures before/after pull → updates détectées ; nettoyage secrets registry.
- Risque : faible-moyen. Priorité : 6.
SJ-6 — Docker apply + prune + down
- Contenu :
apply-compose,prune-images(safe/agressif),down-compose;DockerExecutionResult; validations UI explicites ;docker_image_events. - Testable : fixtures up/prune → conteneurs recréés / bytes reclaimed.
- Risque : moyen-élevé (destructif). Priorité : 7.
SJ-7 — Profils OS Proxmox + Raspberry Pi (+ proxy persistent)
- Contenu : dossiers
templates/proxmox/,templates/raspbian/(update-analyze, full-upgrade) ; modeAptProxyMode="persistent";machine_probe. - Testable : résolution de template par OS ; sonde → propositions de correction.
- Risque : faible (additif, fallback base préservé). Priorité : 8 (transversal).
SJ-8 — Post-install : bootstrap + identité/réseau
- Contenu : moteur de profils (manifestes, champs dynamiques, preview, validations),
custom/bootstrap-root.sh.tpl,custom/identity-network.sh.tpl;install_profiles/install_recipes; stratégie reconnexion ;PostInstallResult. - Testable : rendu de manifeste → formulaire ; preview masquant les secrets ; échec contrôlé si champ manquant.
- Risque : moyen (réseau). Priorité : 9.
SJ-9 — Post-install : paquets de base + Docker officiel + partages + VM tools
- Contenu :
install-package-groups,docker-official-debian,sharing,vm-guest-tools; presets de variables ; renvoi du catalogue détaillé à la tâche 4. - Testable : installation de groupes ; idempotence.
- Risque : faible-moyen. Priorité : 10.
Notes de séquencement
- SJ-0 est bloquant pour tous les autres (types + réduction + résolution).
- APT (SJ-1→3) et Docker (SJ-4→6) sont indépendants : peuvent être menés en parallèle après SJ-0.
- Chaque sous-jalon livre un logiciel testable et ne casse pas les flux jalon 1 (
refresh,apt_full_upgrade,reboot) grâce aux extensions additives. - Les actions destructives n'arrivent qu'après le socle de validation UI (
action_requests), conformément à70-securite.md.