Files
system_update/docs/superpowers/plans/2026-06-06-tache2-sj7-profils-os-proxy.md
T
gilles bafb085995 feat(os): profils Proxmox/RPi + machine_probe + proxy persistent (tâche 2 SJ-7)
- templates proxmox/ (update-analyze: dépôts PVE ; full-upgrade) et raspbian/
  (update-analyze: espace disque ; full-upgrade)
- execute résout les actions APT par profil OS (resolveTemplate) → proxmox/
  raspbian si dispo, sinon fallback apt/ (non-régression debian/ubuntu vérifiée)
- machine_probe (lecture seule) : template + parseProbe/proposeCorrections (TDD)
  → propose os_family/machine_kind/virtualization, persiste machine_hardware,
  n'applique jamais auto ; branche execute + allowlist route
- apt_proxy_persistent : ActionType + template idempotent (/etc/apt/apt.conf.d/
  01proxy, backup) + TemplateVars.aptProxyUrl + allowlist route

tsc 0 · 95 tests · build OK · résolution OS vérifiée.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 07:14:43 +02:00

2.4 KiB

Tâche 2 — SJ-7 : Profils OS Proxmox/RPi + machine_probe + proxy persistent

Statut : implémenté (2026-06-06). tsc 0 · 95 tests · build OK. Résolution OS vérifiée. Réf. design : docs/design/tache2/60-profils-os-machine.md, 80-sous-jalons.md SJ-7.

Périmètre livré (additif, fallback base préservé)

  • Templates OS-spécifiques :
    • templates/proxmox/update-analyze.sh.tpl (détection dépôts PVE enterprise/no-subscription)
      • full-upgrade.sh.tpl (dist-upgrade kernel/proxmox-ve/Ceph).
    • templates/raspbian/update-analyze.sh.tpl (contrôle espace disque carte SD)
      • full-upgrade.sh.tpl (apt full-upgrade). rpi-update volontairement non utilisé.
  • Résolution par profil OS dans execute.ts : les actions APT passent par resolveTemplate(file, osFamily)proxmox//raspbian/ si dispo, sinon apt/. Vérifié : proxmox/raspbian pris ; debian/ubuntu → fallback apt/ (non-régression jalon 1). refresh.ts résolvait déjà update-analyze.
  • machine_probe (action lecture seule) :
    • templates/apt/machine-probe.sh.tpl (os-release, arch, systemd-detect-virt, /etc/pve, /proc/cpuinfo RPi, lspci GPU, ip addr).
    • machineProbe.ts : parseProbe + proposeCorrections (TDD, 4 cas : Proxmox/RPi/VM KVM) → propose os_family/machine_kind/virtualization. runProbe persiste les faits matériels (machine_hardware gpus/network) et renvoie un diff jamais appliqué auto.
    • Branche execute (archiveExecution) + allowlist route.
  • Proxy APT persistant (apt_proxy_persistent) :
    • ActionType ajouté ; templates/apt/apt-proxy-persistent.sh.tpl écrit /etc/apt/apt.conf.d/01proxy (idempotent, sauvegarde horodatée de l'existant).
    • TemplateVars.aptProxyUrl ; rendu avec m.aptProxyUrl ; allowlist route.

Sécurité / invariants

  • machine_probe ne modifie rien ; les corrections OS/kind sont proposées, l'opérateur garde le dernier mot (pas d'application auto).
  • Proxy persistant = action explicite idempotente avec backup ; l'URL n'est pas un secret.
  • Aucun secret dans les templates ; fallback base garantit la non-régression Debian/Ubuntu.

Reste tâche 2

SJ-8 / SJ-9 (post-install : bootstrap/identité, paquets de base/Docker officiel/partages/VM tools). UI : bouton « Sonder » + affichage des propositions, sélecteur de proxy persistant = tâche 3.