name: "particle-os-complete"
description: "Complete particle-os container processing with OSTree, bootc, and bootupd integration"
base-image: "debian:trixie-slim"
image-version: "1.0.0"

stages:
  # Basic system setup
  - type: org.osbuild.debian.apt
    options:
      packages:
        - bash
        - coreutils
        - locales
        - systemd
        - ostree
        - bootc
        - bootupd
      update: true
      clean: true

  # System configuration
  - type: org.osbuild.debian.locale
    options:
      language: en_US.UTF-8
      default_locale: en_US.UTF-8
      additional_locales:
        - en_US.UTF-8
        - C.UTF-8

  - type: org.osbuild.debian.timezone
    options:
      timezone: UTC

  - type: org.osbuild.debian.users
    options:
      users:
        admin:
          password: "$6$rounds=656000$salt$hashed_password"
          shell: /bin/bash
          groups: ["sudo", "users"]
          uid: 1000
          gid: 1000
          home: /home/admin
          comment: "Administrator User"

  # OSTree integration
  - type: org.osbuild.debian.ostree
    options:
      ostree_repo: "particle-os-repo"
      ostree_branch: "main"
      ostree_ref: "debian-atomic/main"
      ostree_mode: "archive"

  - type: org.osbuild.debian.ostree_boot
    options:
      ostree_boot_dir: "/usr/lib/ostree-boot"
      kernel_path: "/boot/vmlinuz"
      initrd_path: "/boot/initrd.img"
      bootupd_enable: true
      bootupd_config: |
        enabled: true
        repository: /ostree/repo
        branch: main

  - type: org.osbuild.ostree_deploy
    options:
      ostree_repo: "particle-os-repo"
      ostree_ref: "debian-atomic/main"
      deployment_mode: "ostree"
      immutable_dirs:
        - "/usr"
        - "/etc/ostree"
        - "/var/lib/ostree"
      mutable_dirs:
        - "/var"
        - "/home"
        - "/tmp"
      bootloader: "bootupd"
      bootloader_config: |
        enabled: true
        update_method: atomic

  # Bootc integration
  - type: org.osbuild.debian.bootc
    options:
      config_file: "/etc/bootc/config.yaml"
      deployment_type: "atomic"
      boot_method: "ostree"
      kernel_args: "ostree=/ostree/boot.1/debian-atomic/main/0 console=ttyS0,115200"

  # Bootupd integration
  - type: org.osbuild.debian.bootupd
    options:
      config_file: "/etc/bootupd/bootupd.conf"
      update_method: "atomic"
      deployment_source: "ostree"
      auto_update: true

  # Image creation
  - type: org.osbuild.qemu
    options:
      formats: ["raw", "qcow2"]
      size: "10G"
      filename: "particle-os-complete"

output:
  formats: ["raw", "qcow2"]
  size: "10G"
  path: "particle-os-complete"

metadata:
  author: "particle-os team"
  category: "particle-os"
  tags: ["particle-os", "debian", "atomic", "ostree", "bootc", "bootupd"]
  target_audience: "Developers testing complete particle-os container processing"
  based_on: "debian:trixie-slim"
