commit | 89c7c37f5ab375791bc262716a879e864b0374f0 | [log] [tgz] |
---|---|---|
author | Jan Kundrát <jan.kundrat@cesnet.cz> | Fri Nov 13 09:41:08 2020 +0100 |
committer | Jan Kundrát <jan.kundrat@cesnet.cz> | Fri Nov 13 18:36:58 2020 +0100 |
tree | 2749062949b8b8c7b807810335825160aaed238a | |
parent | c935f7c23ae6ce29040f9973166a482cc799f0dc [diff] |
Fedora 33 image Now, this one was funny. First of all, `virt-builder` appears to be really broken with Fedora 33. Whenever a new kernel version gets insatlled within the VM (most often via the `--update` option to, say, `virt-builder` or even `virt-customize`), then "something" within the VM assumes that the Grub's configuration should actually use the UUID of libguestfs' own appliance image. The result is of course unbootable, it gets stuck at systemd waiting for a `/dev/disk/by-uuid/*` which just won't come. Solve that by not using `virt-builder` in the first place. Just get the official VM image of Fedora for OpenStack, and then install a bunch of packages. Also, *hope* that this will never ever result in a kernel upgrade. If it does, then we're screwed. As a nice bonus, Fedora 33 switched to Python 3.9 which removed threading.Thread.isAlive() that used to be deprecated since Python2 times. That's a problem because Zuul is still using that, only the upstream master is fixed. In the end I decided to patch this around in Zuul. At first I wanted to redirect Ansible on F33 to use the `python3.8` package, but that caused all sorts of <expletive> -- the `python3-selinux` is only for the systemwide version, not for 3.8. After disabling SELinux (it's a throwaway build VM!), it turned out that I *still* need relabeling of the rootfs anyway, and that Ansible wants to use host's Python for `import dnf`, which is only in 3.9 site-packages. Nope, not going there today, sorry, back to patching Zuul (see the previous commit). Change-Id: I56cb1253200fd983eb816b5ae1e1eba0a4e493ef
This is what is currently powering the CI infrastructure tied to our Gerrit. It's mostly about Zuul v3 with Nodepool, log storage, etc.
Note that some pieces (Gerrit itself in particular) are still deployed via Puppet for legacy reasons. That configuration is internal.
# Example: provision the Zuul server ansible-playbook -i production site.yml -l zuul-server