Skip to content

composefs-rs integration in bootc #1190

Open
@travier

Description

@travier

The composefs-rs project is a Rust implementation of composefs that is capable of generating composefs images from container images.

We should integrate it in bootc as an alternative to the ostree backend. This would help make progress on phasing out ostree, UKI support and unified storage:

To be able to do that, we need to make bootc capable of handling both repository formats and have it handle the transition from ostree to pure composefs.

A potential layout for this is discussed in containers/composefs-rs#38.

Here are suggested steps for creating a first proof of concept implementation:

  • Add an option to bootc switch
    • bootc switch --composefs quay.io://foo:bar
    • bootc will import the container image using the composefs-rs library in a dedicated composefs repo
    • bootc will set up the repo as needed
  • bootc will create a new "deployment" for this image
    • Do the three way merge for /etc, comparing previous image, new image, current changes
    • Or use overlayfs instead to do that for /etc
    • Setup /var so that it's shared with ostree deployments
  • bootc will setup the new deployment for the next boot
    • UKI case:
      • GRUB: Generate GRUB config snippet to boot the UKIs in order
      • systemd-boot: Install the UKI in /boot/efi/EFI/Linux (order handling to be confirmed)
    • Non-UKI case:
      • GRUB: Install the kernel & initrd in /boot and setup the BLS config
      • systemd-boot: Install the kernel & initrd in /boot/efi and setup the BLS config

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/composefsIssues related to composefstriagedThis looks like a valid issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions