-
Notifications
You must be signed in to change notification settings - Fork 220
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
Add Fedora CoreOS to continuous integration tests #714
Comments
TL;DR, summary at the end Toolbox uses for its CI Zuul hosted on SoftwareFactory. Just to give a bit of a background, the main reason why we use SF + Zuul is the fact they offer running tests on "native" Fedora hosts, not only containers as in the case of Travis/GitHub Actions/... Also, worth noting could be the fact that the development of Zuul and SoftwareFactory is in very close contact with works on Fedora CI. If we can not come up with a solution, we could ask folks in the initiative for advice. I asked a few days ago the folks behind SF and Zuul about the possibility to add support for Fedora CoreOS. The response was that it could be just a matter of finding an image and providing a configuration in SF using that image (https://softwarefactory-project.io/cgit/config/tree/nodepool/virt_images). To me, this sounds quite feasible. The only obstacle I see (and it may be large) is in the fact that Zuul is built on top Ansible. And I don't know how well Ansible plays with CoreOS. And I don't mean this in the sense of running Ansible inside of CoreOS but in the sense of Ansible operating CoreOS (e.g. installing packages). From what I understand, Zuul/SF execute series of steps before and after running tests in the environment. Considering the fact that Zuul runs 100% of times on "classic" package-based systems, I cannot say that the same steps will work without any problems on CoreOS. But this is currently only a speculation on my part. Jumping forward, let's say Zuul supports FCOS, how do we build Toolbox & execute the tests? The easiest solution to me seems to be to use a container. And either we can use a pre-built one with all the dependencies already in place or just create a generic (Fedora?) container, install dependencies and build. Both solutions have their pros and cons but I don't see anything complicated here. Running the tests will be a bit more "fun" thing to do :). For our system tests we use bats, which is a minimalist testing framework. To get it we can either clone with git or layer a rpm. If we choose to layer then there is also the choice between rebooting (which according to Zuul folks should be totally fine) and applying the changes live with Summary:
|
This might be a non-starter for FCOS. We are actively trying to keep See coreos/fedora-coreos-tracker#592 and coreos/fedora-coreos-tracker#578 That being said, it may be possible to layer in I skimmed the docs about adding a diskimage and they seem very specific to traditional RHEL/Fedora style images. I'd be interested to hear from a SF/Zuul expert on this topic. |
I'm aware of the effort and respect it. Note the wording of "FCOS in Ansible", not "Ansible in FCOS" :). I also mention it in the longer part of the comment:
But the lack of Python could still be a potential problem. But this is better to be discussed with Zuul folks.
When I asked the folks about the images, I was asking in the context of adding FCOS and Ubuntu images. I didn't get a feeling from their response that they are against the idea. Discussion from #softwarefactory on Freenode:
|
We also have the option of building toolbox inside of a podman container on the FCOS VMs before running the tests on the VM itself. The best scenario for us would be to produce Ignition configs that perform the tests and report success directly as running Ansible might become tricky quickly. |
Seems like an early experiment would be to take the FCOS qcow and try using |
@miabbott, I have no clue how to work with |
Mmm...what about the option of adding Prow and/or CoreOS CI to this repo? We now have added good support for nested virt to Prow. Also tangentially related to this is coreos/fedora-coreos-config#862 (comment) |
My way of thinking here is to make use of what Toolbox already has to reduce maintenance burden. Does it sound too complicated to add FCOS to the existing CI? If yes, then we can go in the direction of adding Prow/CoreOS CI. |
I suspect the real first problem is that Zuul's OpenStack focus assumes that the systems under test use cloud-init, not Ignition. (EDIT: To clarify, Ignition and FCOS support OpenStack, but it's common for systems talking to OpenStack to assume the guest uses cloud-init)
This should be totally fine, though I'd actually just say to use Honestly though, I am not super concerned about this side of things - my instinct says that the Because what history says is far more likely to happen is e.g. a podman change breaks toolbox - and FCOS' CI is where we gate everything together before it ships to users. (And once Silverblue rebases on FCOS, we would achieve the important property of not shipping an ostree commit to users unless toobox works) |
Yes, I agree. Historically most of the breakages have been Podman regressions. So any progress in that direction is welcome. We (mostly @HarryMichal) once tried to get Toolbox added to Podman's Fedora gating CI, but that ended up getting lost in the weeds.
Yes, that would be awesome. I filed this issue because I felt that there were some really frustrated CoreOS users out there who feel that Toolbox is always broken for them. Until a few months back, it was due to the rootful use-case. Now that So, as part of treating CoreOS as a primary platform, I was looking for a way to avoid such things in the future. But ultimately it's up to you. :) If you are happy to only gate CoreOS images on Toolbox, then that's definitely fine by me. If you want to do something else, or do multiple things, then that's also fine with me. I'll take anything that reduces the number of user-facing breakages as a win. |
We now have tests in Fedora CoreOS CI but of course that does not covers changes here so this is still relevant. I'll have to take a look at the Zuul setup. |
@travier We can take a look at it together if you want. Just let me know. |
Current plan based on discussion with Zuul/SF maintainers/members:
Then we can create a new playbook to:
|
See also discussion in containers/podman#10296 |
It got done. The Toolbox test suite is now run as part of Podman's downstream Fedora gating. |
Any updates on getting a Fedora CoreOS host added to the CI? |
Sorry, I have not been able to get to this and other issues are keeping me busy right now. 😕 |
Also dropped the ball on this. |
I can help with this. Can someone please tell me what has been done until now? I can maybe drive this home |
We want Fedora CoreOS to be one of the primary supported platforms, just like Fedora Silverblue and Workstation or nowadays RHEL 8. Therefore, it would be good to run our continuous integration tests also on Fedora CoreOS hosts.
This will help avoid regressions like #656 and #712
The text was updated successfully, but these errors were encountered: