Skip to content

bootc integration tracker #22785

Open
Open
@cgwalters

Description

@cgwalters

Feature request description

👋 the https://github.com/containers/bootc project is intending to closely tie to podman. We actually have bootc-dev/bootc#215 which we queued up to make this an explicitly hard dependency.

I was working on bootc-dev/bootc#559 and it'd probably be better to have most of this logic live in podman. For that feature it'd be something like podman pull --all-images-from-root <dirfd> where <dirfd> is an openat2() fd for the mounted new root. Actually when we do this we probably need to design something more general where images can be "pinned" in this case by...hmm, well, we could just teach podman to ask bootc what active roots there are? So it'd be denied by default podman rmi an image referenced in a root. Though there are some fun details here around how possibly floating tags behave.

Anyways implementing stuff like this is going to start to involve cross-calling between podman and bootc in general. Here's my initial thought: we add something like podman bootc-internals which is intended to be a hidden implementation detail of the backend of some things that are logically bootc features to start.

(One side challenge I'm trying to handle here is that while so far bootc is all Rust, I think as folks here know, there's a lot more people that can write Go for better or worse, and having a "land the code in podman" as a generic escape hatch might help...that has its own tradeoffs of course)

Suggest potential solution

A new podman bootc-backend API entrypoint.

Have you considered any alternatives?

We could of course try to make things pluggable on either end...in theory of course, some of what I'm talking about here could apply to other image-based update systems. And in theory, bootc could learn to speak to docker too...

But of course, the tradeoff there is a lot more complexity.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.stale-issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions