Operating system rootfs builder
  • Rust 99.8%
  • Shell 0.2%
Find a file
2026-06-01 17:17:36 +01:00
crates Implement bootable rootfs metadata and slot prep 2026-06-01 17:17:36 +01:00
docs Implement bootable rootfs metadata and slot prep 2026-06-01 17:17:36 +01:00
examples Rename delayed etc handoff stage to ek 2026-06-01 14:49:47 +01:00
plans Clarify activation template handoff plan 2026-06-01 16:54:00 +01:00
src/bin Add ek scaffold and info verb 2026-05-31 16:22:46 +01:00
tests Implement bootable rootfs metadata and slot prep 2026-06-01 17:17:36 +01:00
.gitignore example: Add minimal web host 2026-05-30 19:20:13 +01:00
AGENTS.md docs: Add workflow and porting guidance to AGENTS.md 2026-05-30 12:23:30 +01:00
Cargo.lock Implement bootable rootfs metadata and slot prep 2026-06-01 17:17:36 +01:00
Cargo.toml Install deploy-owned ek helper 2026-05-31 17:07:35 +01:00
README.md Implement bootable rootfs metadata and slot prep 2026-06-01 17:17:36 +01:00

os

Tools for building Debian OS root filesystems.

Lower-level building blocks for turning declarative configuration into Debian root filesystems. The tooling is Debian-based — it builds Debian root filesystems (mmdebstrap, apt, snapshot pinning).

Tools

Tool Role
manifest Turn declarative host/task configuration into a generated spec.
deploy Render a spec into a root filesystem (rootfs construction only).
provision Disk-level work: partition/format devices, prepare slots, install boot metadata.

Core flow

config  ->  manifest  ->  spec/<target>/  ->  deploy  ->  source rootfs
                                                              |
                                                              +-> provision prepare-rootfs -> bootable slot
                                                              |
                                                              +-> provision boot (boot artefacts)
  • manifest resolves a target and renders a flat generated spec (metadata, Debian package list via mmdebstrap/apt, software, etc tree, secrets list).
  • deploy renders that spec into a root filesystem and runs the deploy-hook pipeline. It does not partition disks, install bootloaders, or activate slots.
  • provision owns the disk/boot side: partitioning and formatting block devices, preparing bootable A/B slots from a deployed source rootfs, installing boot metadata, and layout drift checks.

Documentation

Docs live under docs/.

Status: early days. These tools are being extracted from a prior declarative-infrastructure system and ported from POSIX shell to Rust; this README and the docs are intentionally minimal and grow as that work lands. See docs/explanation/porting.md for the background and current state.