# Debian bootc-image-builder Integration Roadmap ## Project Overview **STRATEGIC APPROACH**: Hybrid integration using debos components for image creation while building custom container-to-bootable conversion logic. **CORE INSIGHT**: bootc-image-builder doesn't build from scratch - it converts existing containers to bootable images. debos is excellent for image creation but not for container conversion. ## Phase 1: Analysis & Planning (Weeks 1-2) ✅ COMPLETED ### 1.1 Code Analysis ✅ - [x] Analyzed bootc-image-builder + osbuild relationship - [x] Understood manifest generation workflow - [x] Identified debos capabilities and limitations - [x] Determined integration strategy ### 1.2 Key Findings ✅ - **bootc-image-builder workflow**: Container → Manifest → osbuild → Artifact - **debos strengths**: Image partitioning, filesystem formatting, bootloader setup - **debos limitations**: Designed for scratch builds, not container conversion - **Integration approach**: Use debos for image creation, build custom logic for container conversion ## Phase 2: Core Integration Architecture (Weeks 3-6) ### 2.1 Replace osbuild Backend with debos Components - [ ] **Image Creation Engine**: Integrate debos `image-partition` action - [ ] **Filesystem Management**: Use debos filesystem and partition actions - [ ] **Bootloader Integration**: Leverage debos bootloader configuration - [ ] **Output Format Support**: qcow2, raw, AMI (defer ISO for later) ### 2.2 Build Custom Container-to-Bootable Logic - [ ] **Container Extraction**: Extract filesystem from container images - [ ] **OSTree Integration**: Create OSTree structure from container content - [ ] **Manifest Generation**: Generate debos-compatible YAML manifests - [ ] **Boot Configuration**: Set up GRUB, kernel, initramfs ### 2.3 Hybrid Architecture Design - [ ] **Manifest Generator**: Convert container info to debos actions - [ ] **Action Orchestrator**: Coordinate debos actions for image creation - [ ] **Container Processor**: Handle container extraction and preparation - [ ] **Integration Layer**: Bridge bootc-image-builder CLI with debos backend ## Phase 3: Implementation (Weeks 7-12) ### 3.1 Core Integration Module - [ ] **`debos_integration.go`**: Main integration logic - [ ] **`manifest_generator.go`**: Generate debos YAML from container info - [ ] **`container_processor.go`**: Extract and prepare container content - [ ] **`image_builder.go`**: Orchestrate debos actions ### 3.2 debos Action Wrappers - [ ] **`image_partition_wrapper.go`**: Disk image creation - [ ] **`filesystem_wrapper.go`**: Partition and filesystem setup - [ ] **`bootloader_wrapper.go`**: GRUB and boot configuration - [ ] **`ostree_wrapper.go`**: OSTree integration ### 3.3 CLI Integration - [ ] **Update main.go**: Integrate new backend - [ ] **Add debos flags**: Configuration options - [ ] **Maintain compatibility**: Keep existing CLI interface - [ ] **Add validation**: Ensure proper container input ## Phase 4: Testing & Validation (Weeks 13-16) ### 4.1 Unit Testing - [ ] **Integration module tests**: Test core logic - [ ] **Wrapper tests**: Test debos action wrappers - [ ] **Manifest generation tests**: Test YAML output - [ ] **Container processing tests**: Test extraction logic ### 4.2 Integration Testing - [ ] **End-to-end builds**: Test complete workflow - [ ] **Container compatibility**: Test various container types - [ ] **Output validation**: Verify qcow2/raw files - [ ] **Performance testing**: Compare with osbuild ### 4.3 VM Testing - [ ] **QEMU testing**: Boot generated images - [ ] **Boot validation**: Ensure images boot correctly - [ ] **OSTree validation**: Verify OSTree functionality - [ ] **User experience**: Test basic system operations ## Phase 5: Advanced Features (Weeks 17-20) ### 5.1 ISO Support - [ ] **Calamares integration**: Installer framework - [ ] **Live system support**: Bootable ISO creation - [ ] **Persistence options**: Live system customization - [ ] **Multi-format support**: DVD, USB, network boot ### 5.2 Cloud Integration - [ ] **AMI support**: AWS image creation - [ ] **Cloud-init integration**: Instance initialization - [ ] **Multi-region support**: Geographic distribution - [ ] **Automation**: CI/CD pipeline integration ### 5.3 Advanced Customization - [ ] **Blueprint support**: Configuration management - [ ] **Plugin system**: Extensible architecture - [ ] **Multi-architecture**: ARM64, ARMHF support - [ ] **Security features**: TPM, measured boot ## Phase 6: Documentation & Release (Weeks 21-24) ### 6.1 Documentation - [ ] **User guide**: Complete usage documentation - [ ] **Developer guide**: Integration and extension - [ ] **API reference**: Complete API documentation - [ ] **Examples**: Sample configurations and use cases ### 6.2 Community & Release - [ ] **Package preparation**: Debian packaging - [ ] **Community engagement**: Debian community outreach - [ ] **Release management**: Version 1.0 preparation - [ ] **Long-term support**: Maintenance planning ## Technical Architecture ### Integration Points ``` bootc-image-builder CLI ↓ Manifest Generator ↓ debos Actions ↓ Image Output ``` ### Key Components - **Container Processor**: Extract and prepare container content - **Manifest Generator**: Create debos-compatible YAML - **Action Orchestrator**: Execute debos actions in sequence - **Output Handler**: Manage final image creation ### debos Actions Used - **`image-partition`**: Create disk images with partitions - **`filesystem-deploy`**: Format and populate filesystems - **`ostree-commit`**: Manage OSTree repositories - **`pack`**: Create final image files ## Success Metrics ### Technical Goals - **Container compatibility**: 100% compatibility with existing containers - **Output quality**: Bootable images that work in QEMU/VMs - **Performance**: Build times within 2x of osbuild (acceptable trade-off) - **Reliability**: 95%+ success rate for valid inputs ### Adoption Goals - **Community**: 2+ contributors by Phase 6 - **Usage**: 1+ downstream project adoption - **Documentation**: Complete user and developer guides - **Feedback**: Positive reception from bootc community ## Risk Mitigation ### Technical Risks - **debos integration complexity**: Use proven debos actions, build custom logic - **Container compatibility**: Extensive testing with various container types - **Performance overhead**: Accept reasonable trade-offs for complexity reduction - **Maintenance burden**: Single backend choice reduces complexity ### Resource Risks - **Development time**: 6-8 months realistic timeline - **Testing complexity**: Focus on major use cases first - **Community engagement**: Start with bootc users, expand gradually --- **Last Updated**: August 11, 2025 **Next Review**: Weekly during active development **Project Lead**: [Your Name] **Repository**: [Fork URL when created]