Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracker for bootc integration #1446

Open
cgwalters opened this issue Mar 23, 2023 · 16 comments
Open

Tracker for bootc integration #1446

cgwalters opened this issue Mar 23, 2023 · 16 comments
Labels
area/bootable-containers Related to the bootable containers effort. kind/enhancement status/decided

Comments

@cgwalters
Copy link
Member

cgwalters commented Mar 23, 2023

Describe the enhancement

This is a tracker issue for integration with https://github.com/containers/bootc/

There's two mechanical parts to this:

Pre-built (container) images:

Here we add bootc into a quay.io/fedora/fedora-coreos:continuous stream (current builds are in a COPR); or actually, I'd say we only build containers for this "stream". (It'd be nice if they were multi-arch, and we did kola testing using it as a target, but I don't think we need to upload disk and cloud images to start).

Or we could just package in Fedora right now and ship in next or whatever, though that has a high overhead.

Supporting bootc install

The rationale for this is outlined in #1151

This depends on coreos/fedora-coreos-config#2141 at least.

@cgwalters cgwalters added kind/enhancement area/bootable-containers Related to the bootable containers effort. labels Mar 23, 2023
@dustymabe dustymabe added the meeting topics for meetings label Mar 24, 2023
@dustymabe
Copy link
Member

tagging with meeting label for socialization/discussion.

@dustymabe
Copy link
Member

We discussed this in the community meeting today.

13:34:20  dustymabe | #agreed We'll create a new `experimental` FCOS
                    | development stream for testing out highly
                    | experimental new features and add bootc as the
                    | first iteration of experimentation in that
                    | stream.

@dustymabe dustymabe added status/pending-action Needs action status/decided and removed meeting topics for meetings labels Mar 29, 2023
cgwalters added a commit to cgwalters/fedora-coreos-config that referenced this issue May 2, 2023
@cgwalters
Copy link
Member Author

OK, I pushed cgwalters/fedora-coreos-config@cb4157e

I can't do a PR for creating a new branch, but does that commit look good?

@cgwalters cgwalters removed the status/pending-action Needs action label May 2, 2023
cgwalters added a commit to cgwalters/fedora-coreos-config that referenced this issue May 2, 2023
@cgwalters
Copy link
Member Author

(Tweaked now to actually set things up so that any disk images built are container-native by default!)

@cgwalters
Copy link
Member Author

$ cosa run
Fedora CoreOS 38.20230502.dev.1
Tracker: https://github.com/coreos/fedora-coreos-tracker
Discuss: https://discussion.fedoraproject.org/tag/coreos

Last login: Tue May  2 20:24:25 2023
[core@cosa-devsh ~]$ sudo su -
[root@cosa-devsh ~]# rpm-ostree status
State: idle
Deployments:
● ostree-remote-image:fedora:docker://quay.io/fedora/fedora-coreos:experimental
                   Digest: sha256:fff32804dece16a956169cc8f2c133d6e01506db0896a22d50eaebdc8df8f28a
                  Version: 38.20230502.dev.1 (2023-05-02T20:21:59Z)
[root@cosa-devsh ~]# bootc status
*  ostree-remote-image:fedora:docker://quay.io/fedora/fedora-coreos:experimental
    Digest: sha256:fff32804dece16a956169cc8f2c133d6e01506db0896a22d50eaebdc8df8f28a
    Version: 38.20230502.dev.1
    Backend: ostree
    Booted: yes

[root@cosa-devsh ~]# bootc upgrade
ERROR Upgrading: Pulling: Creating importer: Failed to invoke skopeo proxy method OpenImage: remote error: reading manifest experimental in quay.io/fedora/fedora-coreos: manifest unknown
[root@cosa-devsh ~]# 

@jmarrero
Copy link
Member

jmarrero commented May 3, 2023

#1446 (comment)
Commit LGTM.

@jlebon
Copy link
Member

jlebon commented May 3, 2023

  • I'd set prod to false. Practically, the only thing this does today is disable Zincati, which I think applies here too.
  • fedora-copr-bootc.repo and manifests/bootc.yaml will get removed during the config sync. They would normally need to live in testing-devel, though for this experimental stream it'd make sense to keep them there. We'll have to tweak config-bot slightly for this. Super short-term though, config-bot won't run on this branch since it's not configured to look there, so it's not a blocker. But we'll want it soon-ish so the branch doesn't progressively get stale as testing-devel changes.

Looks sane to me otherwise!

@cgwalters
Copy link
Member Author

fedora-copr-bootc.repo and manifests/bootc.yaml will get removed during the config sync. They would normally need to live in testing-devel, though for this experimental stream it'd make sense to keep them there.

Ah, thanks. To be clear, are you saying these two things should go on testing-devel now?

jlebon added a commit to jlebon/fedora-coreos-releng-automation that referenced this issue May 3, 2023
jlebon added a commit to jlebon/fedora-coreos-releng-automation that referenced this issue May 3, 2023
With the new experimental stream, we want to have more freedom in what
files go in there without having to also pollute `testing-devel`.

Add support for a `.coreos.skip-files` file which will tell config-bot
to not clobber a specific set of files on that ref. This augments the
global-level `skip-files` list.

Related: coreos/fedora-coreos-tracker#1446
@jlebon
Copy link
Member

jlebon commented May 3, 2023

fedora-copr-bootc.repo and manifests/bootc.yaml will get removed during the config sync. They would normally need to live in testing-devel, though for this experimental stream it'd make sense to keep them there.

Ah, thanks. To be clear, are you saying these two things should go on testing-devel now?

I meant that we could keep it in the experimental branch regardless since config-bot wouldn't know to keep it in sync. But now I just threw up coreos/fedora-coreos-releng-automation#171 that should help here.

cgwalters added a commit to cgwalters/fedora-coreos-config that referenced this issue May 3, 2023
cgwalters added a commit to cgwalters/fedora-coreos-config that referenced this issue May 3, 2023
jlebon added a commit to jlebon/fedora-coreos-releng-automation that referenced this issue May 3, 2023
With the new experimental stream, we want to have more freedom in what
files go in there without having to also pollute `testing-devel`.

Add support for a `.coreos.skip-files` file which will tell config-bot
to not clobber a specific set of files on that ref. This augments the
global-level `skip-files` list.

Related: coreos/fedora-coreos-tracker#1446
@cgwalters
Copy link
Member Author

Coming back to this now...so I'm good to push this tip commit to a new experimental branch here?

@cgwalters
Copy link
Member Author

I've rebased the experimental branch on the latest testing-devel.

Still thinking about how builds should work. And we need to enable automatic updates; this would be most natural with coreos/rpm-ostree#4392 but the whole thing would be even more clear if we did it via bootc.

cgwalters added a commit to cgwalters/fedora-coreos-config that referenced this issue May 18, 2023
@dustymabe
Copy link
Member

I've rebased the experimental branch on the latest testing-devel.

Tip commit cgwalters/fedora-coreos-config@e077af2 LGTM.

@dustymabe
Copy link
Member

I've rebased the experimental branch on the latest testing-devel.

Tip commit cgwalters/fedora-coreos-config@e077af2 LGTM.

Though.. One thing we should consider, since we're using a copr repo as an input, is that we probably shouldn't do any signing (at least not with the Fedora Release engineering keys) for this.

@cgwalters
Copy link
Member Author

Yeah; actually though related to signing since the goal here is to be container native we should stop doing GPG and switch to sigstore. This relates to coreos/rpm-ostree#4272

Anyways, thanks for the review! I've pushed the branch, should be live now.

That said I keep going back and forth here a bit. What's a bit tempting here actually is to publish bootc as a crate, and just vendor it in rpm-ostree. Then enabling it could just be done via e.g. ln -s /usr/bin/{rpm-ostree,bootc}, which could be done in any derived container build...

@cgwalters
Copy link
Member Author

What's a bit tempting here actually is to publish bootc as a crate, and just vendor it in rpm-ostree. Then enabling it could just be done via e.g. ln -s /usr/bin/{rpm-ostree,bootc}, which could be done in any derived container build...

This happened in coreos/rpm-ostree#4506
which means we don't really need an "experimental" branch anymore, 99% of bootc will ship soon in FCOS, and can be tested by just creating a symlink.

dustymabe added a commit to dustymabe/fedora-coreos-releng-automation that referenced this issue Dec 6, 2023
We d

This reverts commit cad1c93.

As mentioned in coreos/fedora-coreos-tracker#1446 (comment)
we don't really need it anymore.
dustymabe added a commit to dustymabe/fedora-coreos-releng-automation that referenced this issue Dec 6, 2023
This reverts commit cad1c93.

As mentioned in coreos/fedora-coreos-tracker#1446 (comment)
we don't really need it anymore.
@dustymabe
Copy link
Member

which means we don't really need an "experimental" branch anymore

dropping it in: coreos/fedora-coreos-releng-automation#182

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/bootable-containers Related to the bootable containers effort. kind/enhancement status/decided
Projects
None yet
Development

No branches or pull requests

4 participants