Evolving the GitLab runner setup
The GitLab runner the Cloud team uses on casulana.d.o is currently using
parts that worked three years ago, using docker-machine and a hacked
qemu driver for it. While it works quite well, it got some problems
docker-machine is a product by Docker upstream, but is not longer
developed, without any replacement. Currently GitLab upstream makes
heavy use of it, so I have no idea what they are going to do about it.
But we don't need to depend on it.
The qemu driver for docker-machine I enhanced is also not maintained.
Also it right now only supports using "ignition" for VM bootstrap, so it
requires coreos and decendents, but not Debian. And once in a while it
is unable to stop VM.
So, out with the old, in with the new. Introducing an all new
lightweight driver for GitLab runner, using Podman, qemu, cloud-init and
systemd user services writen in our "favorite" language shell.
It uses Podman, the prefered solution everywhere Docker fell into
disgrace. It uses cloud-init to setup everything inside the VM, so it
can run with plain Debian images (Bullseye and Sid for the included
Podman). And it uses systemd to handle all the lifetime stuff, so all
lost VM will be forcefully removed after a preset timespan.
Code and some documentation can be found here:
I intend to do that change in the next days. Let's hope it is as stable
Immortality consists largely of boredom.
-- Zefrem Cochrane, "Metamorphosis", stardate 3219.8