platform-docs/roadmap/milestones.md
Thomas Stallinger 8a7ea7192f docs: record first successful end-to-end live-ISO provisioning run
Replaces the stale "not yet implemented" note for installer.sh
autostart with the actual mechanism (dracut's official
20-apply-live-updates.sh pre-pivot hook via a top-level /updates/
directory, not squashfs/EROFS remastering - that image is EROFS
despite the filename, and hit a reproducible erofs-utils extraction
bug even freshly built from source). Adds the milestone entry for the
first clean end-to-end run through every module, live in Proxmox.
2026-07-20 15:01:23 +02:00

71 lines
2.8 KiB
Markdown

# Milestones
## 2026-07-20
### First successful end-to-end interactive provisioning run on the live ISO
The full interactive provisioning pipeline ran successfully for the first time inside the live-ISO boot chain introduced in ADR-0003, from GRUB through `installer.sh` to a clean exit — tested live in Proxmox.
Boot flow:
GRUB (Tuxflotte entry, live medium)
→ Cinnamon live session autostarts a terminal (dracut pre-pivot `/updates` hook, no squashfs/EROFS modification)
→ installer.sh runs every module in sequence:
00_preflight → 05_network → 10_hardware → 12_enrollment_auth → 15_server_handshake → 17_device_status → 20_profile_selection → 25_installation_confirm → 30_runtime_blueprint → 40_backend (full Fedora backend lifecycle) → 20_storage → 99_finish
Verified components:
* Live-ISO boot with the GRUB auto/interactive entries (ADR-0003)
* Dracut `20-apply-live-updates.sh` hook injecting `/opt/tuxflotte` and autostart/sudoers config, no image remastering
* Device activation and enrollment against the real provisioning server
* Bereitstellungsvorlage selection and Commit Point confirmation
* Runtime Blueprint resolution against the real server (`fedora`/`schulcomputer` keys, not UUIDs)
* Full Fedora backend lifecycle (`backend_init``validate``generate_config``launch``postinstall`)
* Disk detection (`20_storage.sh`)
Bugs found and fixed only by this live run (none reproducible from isolated testing):
* `05_network.sh` crashed on live/ephemeral NetworkManager connections without a backing keyfile
* `20_storage.sh` was a pre-existing stub that never sourced the functions it called
* Missing execute bit on `backend.sh`, `30_runtime_blueprint.sh`, `40_backend.sh` (only ever tested via manually-chmod'd copies)
* sudoers.d drop-in needs explicit root ownership set via `xorriso -chown_r`/`-chgrp_r`, since the build has no local root
Result:
The live-ISO architecture from ADR-0003 is validated end-to-end, not just at the boot-menu level. `backend_launch()`/`backend_postinstall()` remain Phase 1 stubs — the native installer is not yet actually started.
## 2026-06-16
### First successful unattended Fedora installation
A Fedora virtual machine was successfully installed using a Kickstart definition served from the provisioning platform.
Installation flow:
Fedora Netinstall ISO
→ HTTPS
→ anode.tuxflotte.de
→ Kickstart definition
→ Automatic installation
→ Reboot
→ Successful login
Verified components:
* Proxmox VM
* Pangolin reverse proxy
* FastAPI provisioning service
* HTTPS / Let's Encrypt
* Fedora Kickstart
* Automatic partitioning
* User creation
* Package installation
* Post-install scripts
* Git repository access
* Ansible installation
Result:
The core architecture of the Tuxflotte Provisioning Platform has been validated end-to-end.