Thomas Stallinger 72d7a4b27d feat: neues Backend backends/mint-image/ (Golden-Image-Deployment, Phase 2)
Implementiert die von 40_backend.sh erwartete Fuenf-Funktionen-
Lebenszyklus-Schnittstelle (backend_init/validate/generate_config/
launch/postinstall) auf Basis der in Phase 1 isoliert verifizierten
Mechanik in scripts/lib/image_deploy.sh (siehe ADR-0024).

- backend_generate_config() liest dieselben Werte wie das bestehende
  Mint-Backend (Hostname, Device-ID, Device-Fingerprint, Root-Dateisystem,
  Blueprints-JSON), schreibt sie aber als konsolidierte JSON-Datei statt
  eines Preseed/Kickstart-Templates.
- backend_launch() laedt das Golden Image von anode, partitioniert,
  formatiert, entpackt, schreibt fstab, macht chroot-Fixup, installiert
  den Bootloader.
- backend_postinstall() rendert dasselbe postinstall.sh (per Symlink
  geteilt mit backends/mint/, unveraendert wiederverwendet) per envsubst,
  fuehrt es per chroot aus, haengt aus, startet neu.
- backend_validate() beschraenkt sich bewusst auf das einfache
  Partitionierungsschema ('single') - 'custom' mit extra_partitions ist
  noch nicht auf die parted-basierte Mechanik uebertragen, klarer Fehler
  statt stiller Fehlinterpretation.

backends/mint/ bleibt unveraendert als Referenz erhalten - neuer,
eigenstaendiger backend_id ('mint-image'), nichts wird live umgeschaltet.

Noch offen (Phase 3): Golden Image muss noch auf anode bereitgestellt
werden (GOLDEN_IMAGE_URL zeigt bereits dorthin), End-to-End-Test ueber
den echten Self-Service-Flow steht noch aus.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-30 19:04:15 +02:00
..