Add comprehensive phase system, types, and treefile support for deb-bootc-compose

- Add internal/phases/ with complete phase management system
- Add internal/types/ with core data structures
- Add internal/treefile/ for OSTree treefile generation
- Update examples with YAML configurations
- Update .gitignore to properly exclude test artifacts and build outputs
- Update dependencies and configuration files
This commit is contained in:
robojerk 2025-08-19 20:48:46 -07:00
parent 57bb8aafbe
commit cca68c90f6
18 changed files with 2543 additions and 717 deletions

View file

@ -1,61 +1,97 @@
# deb-bootc-compose configuration file
# This file configures the compose engine for creating Debian bootc images
# Debian's equivalent to Fedora's Pungi compose system
# Updated for Debian 13+ (trixie) which has the required OSTree version for bootc
compose:
release: "bookworm"
variants: ["minimal", "standard", "development"]
architectures: ["amd64", "arm64"]
skip_phases: []
just_phases: []
parallel: false
# Release information
release:
name: "Debian"
short: "debian"
version: "13"
type: "stable"
internal: false
# Build system configuration
build_system:
type: "sbuild" # or "debootstrap"
host: "localhost"
port: 8080
auth_token: ""
max_workers: 4
build:
system: "orchestrator"
environment: "debian-bookworm"
cache_dir: "./cache"
work_dir: "./work"
timeout: 1800
orchestrator_url: "http://localhost:8080"
mock_config: "debian-bookworm-amd64"
max_concurrent: 5
build_deps:
systemd: "build-essential, libcap-dev"
udev: "build-essential, libudev-dev"
dbus: "build-essential, libdbus-1-dev"
# OSTree configuration
ostree:
mode: "compose"
refs: ["debian/bootc"]
repository: "./ostree"
signing: false
key_file: ""
repo_path: "./ostree"
treefile_path: ""
log_dir: "./logs"
version: "12.5"
update_summary: true
force_new_commit: false
unified_core: false
extra_config: {}
ostree_ref: "debian/bootc"
work_dir: "./work"
cache_dir: "./cache"
container_output: true
repository: "./ostree-repo"
mode: "bare" # or "archive"
signing:
enabled: false
key: ""
# Output configuration
output:
formats: ["ostree", "container", "tarball", "metadata"]
registry: ""
signing: false
compression: true
formats: ["container", "disk", "tarball"]
disk_image:
formats: ["raw", "qcow2", "vmdk", "vdi"]
size: "10G"
container:
registry: "localhost:5000"
tag: "latest"
# Repository configuration
repositories:
- name: "debian"
url: "http://deb.debian.org/debian"
suite: "trixie"
component: "main"
arch: "amd64"
enabled: true
- name: "debian-security"
url: "http://security.debian.org/debian-security"
suite: "trixie-security"
component: "main"
arch: "amd64"
enabled: true
# Variants configuration
variants:
- name: "minimal"
description: "Minimal base system"
architectures: ["amd64"]
packages:
required: []
optional: []
recommended: []
exclude: []
config: {}
- name: "server"
description: "Server variant"
architectures: ["amd64"]
packages:
required: ["openssh-server", "nginx"]
optional: []
recommended: []
exclude: []
config: {}
- name: "desktop"
description: "Desktop variant"
architectures: ["amd64"]
packages:
required: ["xorg", "gnome"]
optional: []
recommended: []
exclude: []
config: {}
# Architecture configuration
architectures: ["amd64"]
# Logging configuration
logging:
level: "info"
format: "text"
file: "./compose.log"
level: "info" # debug, info, warn, error
file: ""
format: "text" # json or text
orchestrator:
# Cache configuration
cache:
enabled: true
url: "http://localhost:8080"
auth_token: ""
timeout: 300
dir: "./cache"
size: "10G"