82 lines
2.4 KiB
Markdown
82 lines
2.4 KiB
Markdown
# 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 `debootstrap` to 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
|
|
|
|
```bash
|
|
# 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 systems
|
|
- `ostree`: OSTree repository management
|
|
- `python3-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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
1. Integrate with `deb-bootc-image-builder` for bootable artifacts
|
|
2. Add support for more desktop environments
|
|
3. Implement automated testing
|
|
4. Create CI/CD pipeline integration
|
|
|
|
## Status
|
|
|
|
✅ **WORKING**: End-to-end pipeline functional
|
|
✅ **WORKING**: Core functionality complete
|
|
🔄 **IN PROGRESS**: Integration with bootc-image-builder
|