Update README: Major discovery - Debian already has most OSTree infrastructure
- Debian ostree-boot package provides 6/6 core OSTree systemd services - Includes dracut integration, tmpfiles config, and GRUB integration - Reduces scope from 35 files to ~15 files (57% reduction) - Only need to create bootc and apt-ostree specific infrastructure - Updated implementation strategy with 3 phases - Added scope reduction summary and key insights
This commit is contained in:
parent
93e2ad4b29
commit
6a8134be49
1 changed files with 61 additions and 30 deletions
91
README.md
91
README.md
|
|
@ -1,6 +1,10 @@
|
|||
# Debian Atomic Infrastructure Files
|
||||
|
||||
This directory contains the missing systemd services, configuration files, and infrastructure components needed to make Debian work with OSTree and bootc-image-builder, based on our analysis of the successful Fedora Atomic system.
|
||||
This directory contains the **additional** systemd services, configuration files, and infrastructure components needed to make Debian work with OSTree and bootc-image-builder, based on our analysis of the successful Fedora Atomic system.
|
||||
|
||||
## 🎉 Major Discovery: Debian Already Has Most OSTree Infrastructure!
|
||||
|
||||
After examining the `ostree-boot` package in Debian, we discovered that **Debian already provides 6 of the 6 core OSTree systemd services** plus dracut integration! This significantly reduces what we need to create.
|
||||
|
||||
## 📁 Directory Structure
|
||||
|
||||
|
|
@ -15,27 +19,32 @@ debian-atomic-files/
|
|||
|
||||
## 🎯 Purpose
|
||||
|
||||
These files address the **critical missing infrastructure** that prevents Debian from working with OSTree and bootc-image-builder. Based on our analysis of the successful Fedora Atomic system, we discovered that **28+ systemd services** are required for a functional OSTree system, and Debian packages are missing most of them.
|
||||
These files address the **remaining missing infrastructure** that prevents Debian from working with OSTree and bootc-image-builder. Based on our analysis of the successful Fedora Atomic system, we discovered that while Debian already has the core OSTree services, it's missing the **bootc and apt-ostree specific infrastructure**.
|
||||
|
||||
## 📦 Package Structure
|
||||
## ✅ What's Already Available in Debian
|
||||
|
||||
### 1. `ostree-systemd` Package
|
||||
### `ostree-boot` Package (Install with: `apt install ostree-boot`)
|
||||
|
||||
**Purpose**: Provides essential OSTree systemd services and configuration files.
|
||||
**Already Provides**:
|
||||
- ✅ `ostree-prepare-root.service` - Prepare root filesystem in initramfs
|
||||
- ✅ `ostree-remount.service` - Remount filesystem with overlays
|
||||
- ✅ `ostree-state-overlay@.service` - State overlay management
|
||||
- ✅ `ostree-finalize-staged.service` - Finalize staged deployments
|
||||
- ✅ `ostree-finalize-staged-hold.service` - Hold service for finalization
|
||||
- ✅ `ostree-boot-complete.service` - Boot completion service
|
||||
- ✅ `98ostree/module-setup.sh` - OSTree dracut module (includes erofs, overlay)
|
||||
- ✅ `ostree.conf` - Dracut configuration (adds ostree + systemd modules)
|
||||
- ✅ `ostree-tmpfiles.conf` - Runtime directory creation and cleanup
|
||||
- ✅ `ostree-prepare-root` - Binary executable
|
||||
- ✅ `ostree-remount` - Binary executable
|
||||
- ✅ `grub2-15_ostree` - GRUB integration script
|
||||
- ✅ `ostree-system-generator` - Systemd system generator
|
||||
|
||||
**Files**:
|
||||
- `systemd/system/ostree-prepare-root.service` - Handles OSTree deployment during initramfs
|
||||
- `systemd/system/ostree-remount.service` - Manages OSTree bind mounts after boot
|
||||
- `systemd/system/ostree-state-overlay@.service` - Template for OSTree state overlays
|
||||
- `systemd/system/ostree-finalize-staged.service` - Finalizes staged deployments
|
||||
- `systemd/system/ostree-finalize-staged-hold.service` - Prevents finalization conflicts
|
||||
- `systemd/system/ostree-boot-complete.service` - Completes boot process
|
||||
- `ostree/prepare-root.conf` - OSTree configuration (composefs, readonly sysroot)
|
||||
- `tmpfiles.d/ostree-tmpfiles.conf` - Runtime directory creation and cleanup
|
||||
**This covers 6/6 core OSTree systemd services!**
|
||||
|
||||
**Installation Path**: `/usr/lib/systemd/system/`, `/usr/lib/ostree/`, `/usr/lib/tmpfiles.d/`
|
||||
## 📦 What We Still Need to Create
|
||||
|
||||
### 2. `bootc` Package
|
||||
### 1. `bootc` Package
|
||||
|
||||
**Purpose**: Provides bootc infrastructure for automatic updates, filesystem growth, and cleanup.
|
||||
|
||||
|
|
@ -51,7 +60,7 @@ These files address the **critical missing infrastructure** that prevents Debian
|
|||
|
||||
**Installation Path**: `/usr/lib/systemd/system/`
|
||||
|
||||
### 3. `bootc-dracut` Package
|
||||
### 2. `bootc-dracut` Package
|
||||
|
||||
**Purpose**: Provides bootc dracut configuration for initramfs generation.
|
||||
|
||||
|
|
@ -60,7 +69,7 @@ These files address the **critical missing infrastructure** that prevents Debian
|
|||
|
||||
**Installation Path**: `/usr/lib/dracut.conf.d/`
|
||||
|
||||
### 4. `apt-ostree` Package (Enhanced)
|
||||
### 3. `apt-ostree` Package (Enhanced)
|
||||
|
||||
**Purpose**: APT-OSTree package should include all systemd services and kernel installation hooks (like rpm-ostree does).
|
||||
|
||||
|
|
@ -84,14 +93,17 @@ These files address the **critical missing infrastructure** that prevents Debian
|
|||
|
||||
**Note**: These files should be bundled with the `apt-ostree` package itself, not as a separate package.
|
||||
|
||||
### 5. `ostree-dracut` Package
|
||||
### 4. Missing Configuration Files
|
||||
|
||||
**Purpose**: Provides OSTree dracut module for initramfs integration.
|
||||
**Purpose**: Additional configuration files needed for complete OSTree integration.
|
||||
|
||||
**Files**:
|
||||
- `modules.d/98ostree/module-setup.sh` - OSTree dracut module setup script
|
||||
- `ostree/prepare-root.conf` - OSTree configuration (composefs, readonly sysroot) - **Note: May need to be added to ostree-boot package**
|
||||
- `kernel/install.conf` - Kernel install configuration (layout=ostree) - **Note: May need to be added to ostree-boot package**
|
||||
|
||||
**Installation Path**: `/usr/lib/dracut/modules.d/98ostree/`
|
||||
**Installation Path**: `/usr/lib/ostree/`, `/usr/lib/kernel/`
|
||||
|
||||
**Note**: The OSTree dracut module is already provided by the `ostree-boot` package.
|
||||
|
||||
## 🔧 What Each File Does
|
||||
|
||||
|
|
@ -209,16 +221,35 @@ After installing these packages, Debian should have:
|
|||
- ✅ **Filesystem growth and cleanup** capabilities
|
||||
- ✅ **Compatibility with bootc-image-builder**
|
||||
|
||||
## 📋 Next Steps
|
||||
## 🚀 Revised Implementation Strategy
|
||||
|
||||
1. **Create Debian packages** from these files
|
||||
2. **Test package installation** on Debian system
|
||||
3. **Build Debian Atomic container** with apt-ostree
|
||||
4. **Test with bootc-image-builder** to create bootable image
|
||||
5. **Boot test** the resulting image
|
||||
### Phase 1: Install Existing Infrastructure
|
||||
```bash
|
||||
apt install ostree-boot # Provides 6/6 core OSTree systemd services + dracut integration
|
||||
```
|
||||
|
||||
### Phase 2: Create Missing Packages
|
||||
1. **Create `bootc` package** - 8 systemd services + dracut config
|
||||
2. **Enhance `apt-ostree` package** - 7 systemd services + kernel hooks + configs
|
||||
3. **Add missing config files** - prepare-root.conf, install.conf (may need ostree-boot package updates)
|
||||
|
||||
### Phase 3: Test Complete System
|
||||
1. **Test with bootc-image-builder** using a Debian container
|
||||
2. **Build and boot** a complete Debian Atomic system
|
||||
3. **Iterate and improve** based on testing results
|
||||
|
||||
## 📊 Scope Reduction Summary
|
||||
|
||||
**Original Assessment**: 35 files needed (6 OSTree + 8 bootc + 7 apt-ostree + 14 configs)
|
||||
|
||||
**Revised Assessment**: ~15 files needed (8 bootc + 7 apt-ostree + 2 configs)
|
||||
|
||||
**Reduction**: ~57% fewer files needed thanks to existing `ostree-boot` package!
|
||||
|
||||
## 🔍 Key Insights
|
||||
|
||||
**The problem was not in the build process** - `bootc-image-builder` works fine. The problem was **missing package infrastructure** in Debian. These files provide the missing systemd services, configuration files, and hooks that make OSTree work properly.
|
||||
**Major Discovery**: Debian already has 6/6 core OSTree systemd services in `ostree-boot` package!
|
||||
|
||||
**This approach is much more manageable** than initially thought - we just need to package these files and install them, then use the existing proven build process.
|
||||
**The problem was not in the build process** - `bootc-image-builder` works fine. The problem was **missing bootc and apt-ostree specific infrastructure** in Debian.
|
||||
|
||||
**This approach is much more manageable** than initially thought - we just need to create the missing bootc and apt-ostree packages, then use the existing proven build process.
|
||||
Loading…
Add table
Add a link
Reference in a new issue