-
Notifications
You must be signed in to change notification settings - Fork 14
Port tests to test.thing
#156
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
base: main
Are you sure you want to change the base?
Port tests to test.thing
#156
Conversation
ca2a2b0
to
5bfa302
Compare
Just skimming test.thing looks quite cool but definitely overlaps with several other efforts/projects this space. |
This work is really being done mostly for the benefit of Cockpit. I've looked into some of the other solutions ( The sheer amount of enablement work that I've been having to do in the distros is a bit of a hint to me that this approach is fairly new... |
Did you have a suggestion for a comparable project I should be looking into? |
d7c2a5d
to
f0651fb
Compare
The ubuntu thing is a bit perplexing. I can't get it to fail locally and it was working on previous iterations of the PR (or at least failing with the error that it had before due to the mount API regressions). I'm slowly starting to suspect that some update or other is causing some issues... |
b152cfc
to
2c6238f
Compare
cf3711e
to
9048ebe
Compare
3f005fd
to
d59e76a
Compare
Signed-off-by: Allison Karlitskaya <[email protected]>
Installing the build dependencies and building the tools takes a long time. Signed-off-by: Allison Karlitskaya <[email protected]>
I often disable the `rm -rf tmp` line to make iterating quicker (by removing the need to pull and write previous layers and objects) but in order for that to work you still need to delete a couple of things. Add a second line so that you can comment out the first one while you're working, like: # rm -rf tmp rm -rf tmp/efi tmp/sysroot/composefs/images Signed-off-by: Allison Karlitskaya <[email protected]>
Run the "install packages into the base image" section as the first thing that happens, before the cfsctl binary gets copied in. This means that we have to regenerate the initramfs, which is duplicated work, but it enables caching of the package installation, which takes much longer and involves downloading updated packages (which drift with time). This helps a lot with iterative local testing, and the bls images are the ones that I usually use for that. Also enable package caching for Arch and Debian by adding the appropriate bind mounts. Use `apt-get` instead of CLI-API-unstable `apt`. Use the new `kernel-install add-all` verb where applicable. We leave Ubuntu out of this change for now: I keep ending up with two initramfs files generated and I'm not sure how to workaround the weird use of dracut there. We can circle back to this later. Signed-off-by: Allison Karlitskaya <[email protected]>
This is a similar logic to the previous commit doing the same for bls/ but we make an additional change by installing the kernel up-front. This helps caching, of course, but it also eliminates the "missing modules" problem that required us to force the modules we needed to be present in the initramfs. This is going to be important when we start using more modules like vsock support. Signed-off-by: Allison Karlitskaya <[email protected]>
We need to avoid https://bugzilla.redhat.com/show_bug.cgi?id=2374928 but `semanage` seems to have a bug when invoked more than once in a container build, so we can't just add another invocation. Use a module instead, to workaround both issues in one go. Signed-off-by: Allison Karlitskaya <[email protected]>
7929465
to
87de9f0
Compare
We want to start running images with test.thing, so add the workarounds for improved ssh-vsock support. These are no longer necessary in arch and fedora-rawhide. Unfortunately we can't put these in common/ because it's outside of the build context. Using an extra build context also seems not to work because symlinks aren't copied properly unless it's from the primary context. Make a small fix to a comment in examples/uki/Containerfile that should have been cleaned up as part of a4cbd3e ("Update approach to handling boot resources"). Signed-off-by: Allison Karlitskaya <[email protected]>
2165ef8
to
962e7f6
Compare
Drop our dependency on cockpit-bots (checked out from its git repository and requiring libvirt and other heavy dependencies) and switch over to using test.thing (vendored) via pytest. We no longer install ssh keys into the images: test.thing generates an ephemeral key on each run and feeds it into the guest. Expand examples/README.md to describe how this is all intended to be used. Adjust our github workflows appropriately. The systemd version on the runner isn't new enough to have systemd-ssh-proxy, so install our polyfill. We also need to make sure the vhost-vsock is accessible to the user in the same way as /dev/kvm. Signed-off-by: Allison Karlitskaya <[email protected]>
06fd3ea
to
d9c316f
Compare
Facts:
Observations:
I feel like this is probably a bug buried deep inside of something or other that has nothing to do with us and is very likely already fixed upstream, but I'd still prefer not to just ignore it. At the very least, this is valuable information for determining minimum recommended versions for Next ideas:
|
we want to see very very early kernel messages
Okay, the change in the serial console debugging got us one more message:
The next line I get after that when I run locally (ie: when it works) is
|
Okay here we go....
|
6473252
to
21a50e6
Compare
So it seems to be getting stuck in the |
...probably still broken, but let's see how it goes.