2.4 KiB
2.4 KiB
Alternative Debian Atomic Solution
Overview
This document describes an alternative approach to creating Debian Atomic systems that bypasses the current limitations of apt-ostree. Instead of relying on apt-ostree's incomplete implementation, we use debootstrap to create root filesystems and ostree directly for repository management.
Why This Approach?
The apt-ostree project has several fundamental issues:
- Mock package database instead of real Debian repositories
- Incomplete chroot environment setup
- Hardcoded Ubuntu configuration
- Missing core functionality
Components
1. create-debian-atomic.py
A Python script that orchestrates the entire build process:
- OSTree Repository Creation: Initializes bare OSTree repositories
- Rootfs Generation: Uses
debootstrapto create minimal Debian Trixie systems - Package Management: Installs essential packages for each variant
- Commit Creation: Generates OSTree commits with proper metadata
2. Supported Variants
- minimal: Base system equivalent to Fedora CoreOS
- gnome: GNOME desktop environment
- plasma: KDE Plasma desktop environment
3. Build Process
# Build minimal variant
sudo python3 create-debian-atomic.py minimal
# Build with custom work directory
sudo python3 create-debian-atomic.py minimal /path/to/work/dir
Dependencies
debootstrap: Creates base Debian systemsostree: OSTree repository managementpython3-yaml: YAML configuration parsing- Root privileges (required for
debootstrap)
Output
The script generates:
- OSTree repository with proper structure
- Root filesystem with real Debian packages
- OSTree commit with variant-specific metadata
- Ready-to-deploy atomic system
Deployment
# Deploy the generated system
ostree admin deploy --os minimal /path/to/repo
Advantages
- Real Packages: Uses actual Debian Trixie repositories
- Full Control: Direct management of build process
- Reliable: Bypasses incomplete tooling
- Extensible: Easy to add new variants
Next Steps
- Integrate with
deb-bootc-image-builderfor bootable artifacts - Add support for more desktop environments
- Implement automated testing
- Create CI/CD pipeline integration
Status
✅ WORKING: End-to-end pipeline functional ✅ WORKING: Core functionality complete 🔄 IN PROGRESS: Integration with bootc-image-builder