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

RFC: A new continuous mechanical FCOS stream #910

Open
jlebon opened this issue Jul 27, 2021 · 13 comments
Open

RFC: A new continuous mechanical FCOS stream #910

jlebon opened this issue Jul 27, 2021 · 13 comments

Comments

@jlebon
Copy link
Member

jlebon commented Jul 27, 2021

Describe the enhancement

In the Fedora Atomic days, we had continuous builds from git-main of all the important upstream repos via rpmdistro-gitoverlay. I've been trying on and off to replicate something similar for FCOS using Packit, though that stalled on https://pagure.io/releng/issue/9801.

In a discussion with @bgilbert, we realized a simpler approach is to just use the fcos-buildroot image to make && make install from all the repos we care about into overrides/rootfs and go from there. This should naturally work on all arches too. So with not too much effort, we could have a mechanical stream of FCOS tracking git-main of all our components. This would be useful for CI purposes only. We'd never release/promote the content there.

The primary negative is simply the added overhead of tracking failures in yet another stream. It's also not exactly the same as using RPMs because removed files won't actually be removed, which could lead to false positives. Also, the rpmdb would be incorrect.

Still, it's worth considering I think given the effort it'd require to set up.

@jlebon
Copy link
Member Author

jlebon commented Jul 27, 2021

I guess maybe to clarify the framing, there are two separate questions:

  1. Should we pursue the goal of a continuous FCOS stream tracking git-main of all our projects?
  2. If so, what is the best way to achieve this goal? Should we just use overrides/rootfs, or try to push forward on the Packit path (or something else)?

@travier
Copy link
Member

travier commented Jul 28, 2021

I like this. Some thoughts:

  • Daily builds might be too much work tracking failures. Once or twice a week might be good enough?
  • Pushing Packit support forward for all our projects is interesting on its own as it could help us move to source-git for CentOS Stream packages
  • But I'm not opposed to using make install into overrides too if that's easier

@cgwalters
Copy link
Member

Heh I had missed this issue. OK so I had worked on coreos/rpm-ostree#3032 which will hook into copr for this. My immediate motivation actually in this case is I want to create quay.io/coreos-assembler:continuous so I have my updated error prefixing PRs. In the interim I spun a custom image which was fine, but having a continually regenerated image would be clearly useful.

I think it's fine if short term a continuous build is only x86_64, which COPR supports fine.

@cgwalters
Copy link
Member

One argument for using COPR is other Fedora editions using rpm-ostree would find it useful.

@jlebon jlebon added the meeting topics for meetings label Jul 28, 2021
@jlebon
Copy link
Member Author

jlebon commented Jul 30, 2021

One intermediate approach to this which doesn't involve a new stream and the overhead it involves is to target rawhide only and have the rawhide stream pick them up.

Even if we do a separate continuous stream which is based on testing-devel's releasever we should still do that IMO.

Obviously if we go the COPR/Packit route, we can still also build the RPMs for the current releasever too. That would be useful for FCOS developers to drop into overrides/rpm locally.

@lucab
Copy link
Contributor

lucab commented Aug 5, 2021

We briefly touched this topic in the last meeting. Lots of questions still open, it will be brought back in the next meeting.

@jlebon jlebon removed the meeting topics for meetings label Aug 25, 2021
jlebon added a commit to jlebon/ostree that referenced this issue Feb 3, 2022
I'd like to enable auto-builds of this repo to
https://copr.fedorainfracloud.org/coprs/g/CoreOS/continuous/ so it could
eventually feed into
coreos/fedora-coreos-tracker#910.
@jlebon
Copy link
Member Author

jlebon commented Feb 3, 2022

jlebon added a commit to jlebon/ignition that referenced this issue Feb 3, 2022
I'd like to enable auto-builds of this repo to
https://copr.fedorainfracloud.org/coprs/g/CoreOS/continuous/ so it could
eventually feed into
coreos/fedora-coreos-tracker#910.
jlebon added a commit to jlebon/ignition that referenced this issue Feb 3, 2022
I'd like to enable auto-builds of this repo to
https://copr.fedorainfracloud.org/coprs/g/CoreOS/continuous/ so it could
eventually feed into
coreos/fedora-coreos-tracker#910.
jlebon added a commit to jlebon/ignition that referenced this issue Feb 3, 2022
I'd like to enable auto-builds of this repo to
https://copr.fedorainfracloud.org/coprs/g/CoreOS/continuous/ so it could
eventually feed into
coreos/fedora-coreos-tracker#910.
jlebon added a commit to jlebon/butane that referenced this issue Feb 3, 2022
I'd like to enable auto-builds of this repo to
https://copr.fedorainfracloud.org/coprs/g/CoreOS/continuous/ so it could
eventually feed into
coreos/fedora-coreos-tracker#910.
@jlebon
Copy link
Member Author

jlebon commented Feb 4, 2022

OK, so it turns out setting up COPR for other repos is pretty easy so it seems silly to go with the make install hack. I've now set up automated builds for ostree, butane, and ignition in https://copr.fedorainfracloud.org/coprs/g/CoreOS/continuous/packages/ (and rpm-ostree was already set up by Colin).

Will work on adding more packages to the list in the background, but my proposal for this now is:

  • Let's add a new continuous stream matching testing-devel but which includes the COPR repo in its repo list.
  • Let's not build all the artifacts for the continuous stream: maybe just QEMU, live artifacts, and AWS + single region upload? (Full builds can be requested on-demand.)
  • Let's include the COPR repo in the repo list for the rawhide stream too.

Frequency-wise, it could just match rawhide for now. I'd like to have both of those rebuild more frequently, but we should really implement some GC first.

@jlebon jlebon added the meeting topics for meetings label Feb 4, 2022
@cgwalters
Copy link
Member

Let's not build all the artifacts for the continuous stream: maybe just QEMU, live artifacts, and AWS + single region upload? (Full builds can be requested on-demand.)

We could even just start with only pushing a container image; xref coreos/coreos-assembler#2685

@jlebon
Copy link
Member Author

jlebon commented Feb 4, 2022

Let's not build all the artifacts for the continuous stream: maybe just QEMU, live artifacts, and AWS + single region upload? (Full builds can be requested on-demand.)

We could even just start with only pushing a container image; xref coreos/coreos-assembler#2685

Hmm, I think having at least QEMU and AWS images would make it more useful to developers/testers so they can quickly try it out. E.g. cosa buildfetch --stream continuous && kola spawn -p aws (or --artifact qemu && cosa run).

@dustymabe
Copy link
Member

I have to admit that I think this would be useful, but I'm really not excited about looking at failures from another stream.

jlebon added a commit to jlebon/fedora-coreos-config that referenced this issue Feb 10, 2022
Rawhide moves fast. And our packages adapt quickly. Add the
@CoreOS/continuous packages to shorten the cycle.

Part of coreos/fedora-coreos-tracker#910.
@dustymabe
Copy link
Member

dustymabe commented Feb 24, 2022

We discussed this in the community meeting yesterday.

12:05:35  dustymabe | #agreed While we see value in a continuous stream we aren't
                    | wholly convinced the benefits qualify adding another stream at
                    | this point. We'd like to continue discussion in the ticket and
                    | collect examples of issues we think would have been caught by a
                    | continuous stream before landing in testing-devel.

@dustymabe dustymabe removed the meeting topics for meetings label Feb 24, 2022
cgwalters added a commit to cgwalters/fedora-coreos-config that referenced this issue May 3, 2022
History goes in cycles.  One of the key original raison d'être of
ostree was having people consume git main/master of projects.  But...
because RPM doesn't make it easy to revert things, we really
end up going only at the same speed as the rest of Fedora sadly.

Anyways, we've talked about this a few times in FCOS; xref
coreos/fedora-coreos-tracker#910

This adds a container image that is built *as* a container layering
on top of the base image, using the recently landed
coreos/rpm-ostree#3605

My plan is to add build automation (in the pipeline? or OCP Prow?)
that sticks this at e.g. `quay.io/coreos-assembler/fcos:35-continous`.
cgwalters added a commit to cgwalters/fedora-coreos-config that referenced this issue May 3, 2022
History goes in cycles.  One of the key original raison d'être of
ostree was having people consume git main/master of projects.  But...
because RPM doesn't make it easy to revert things, we really
end up going only at the same speed as the rest of Fedora sadly.

Anyways, we've talked about this a few times in FCOS; xref
coreos/fedora-coreos-tracker#910

This adds a container image that is built *as* a container layering
on top of the base image, using the recently landed
coreos/rpm-ostree#3605

My plan is to add build automation (in the pipeline? or OCP Prow?)
that sticks this at e.g. `quay.io/coreos-assembler/fcos:35-continous`.
@cgwalters
Copy link
Member

cgwalters commented May 3, 2022

(related) PR in coreos/fedora-coreos-config#1710

cgwalters added a commit to coreos/fedora-coreos-config that referenced this issue May 24, 2022
History goes in cycles.  One of the key original raison d'être of
ostree was having people consume git main/master of projects.  But...
because RPM doesn't make it easy to revert things, we really
end up going only at the same speed as the rest of Fedora sadly.

Anyways, we've talked about this a few times in FCOS; xref
coreos/fedora-coreos-tracker#910

This adds a container image that is built *as* a container layering
on top of the base image, using the recently landed
coreos/rpm-ostree#3605

My plan is to add build automation (in the pipeline? or OCP Prow?)
that sticks this at e.g. `quay.io/coreos-assembler/fcos:35-continous`.
HuijingHei pushed a commit to HuijingHei/fedora-coreos-config that referenced this issue Oct 10, 2023
History goes in cycles.  One of the key original raison d'être of
ostree was having people consume git main/master of projects.  But...
because RPM doesn't make it easy to revert things, we really
end up going only at the same speed as the rest of Fedora sadly.

Anyways, we've talked about this a few times in FCOS; xref
coreos/fedora-coreos-tracker#910

This adds a container image that is built *as* a container layering
on top of the base image, using the recently landed
coreos/rpm-ostree#3605

My plan is to add build automation (in the pipeline? or OCP Prow?)
that sticks this at e.g. `quay.io/coreos-assembler/fcos:35-continous`.
HuijingHei pushed a commit to HuijingHei/fedora-coreos-config that referenced this issue Oct 10, 2023
History goes in cycles.  One of the key original raison d'être of
ostree was having people consume git main/master of projects.  But...
because RPM doesn't make it easy to revert things, we really
end up going only at the same speed as the rest of Fedora sadly.

Anyways, we've talked about this a few times in FCOS; xref
coreos/fedora-coreos-tracker#910

This adds a container image that is built *as* a container layering
on top of the base image, using the recently landed
coreos/rpm-ostree#3605

My plan is to add build automation (in the pipeline? or OCP Prow?)
that sticks this at e.g. `quay.io/coreos-assembler/fcos:35-continous`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants