Add mmdebstrap support. Moved docs into docs
Some checks failed
Generate Treefiles / generate-treefiles (push) Failing after 2s
Some checks failed
Generate Treefiles / generate-treefiles (push) Failing after 2s
This commit is contained in:
parent
47468f0147
commit
6f91ab6ede
11 changed files with 565 additions and 187 deletions
82
docs/README-alternative-solution.md
Normal file
82
docs/README-alternative-solution.md
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
# 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue