We do not currently trust GitLab runners for security purposes: at
most we trust them to correctly report errors in test suite, but we do
not trust it with compiling and publishing artifacts, so they have a
low value in our trust chain. This might eventually change.
### Image, volume and container storage and caching
GitLab runner creates quite a few containers, volumes and images in
the course of its regular work. Those tend to pile up, unless they get
cleaned. [Upstream suggests](https://docs.gitlab.com/runner/executors/docker.html#clearing-docker-cache) a [fairly naive shell script](https://gitlab.com/gitlab-org/gitlab-runner/blob/master/packaging/root/usr/share/gitlab-runner/clear-docker-cache) to do
this cleanup, but it has a number of issues:
1. it is noisy ([patched locally with this MR](https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/2711))
2. it might be too aggressive
So we only run it weekly, and instead run a more "gentle" `docker
system prune` command to cleanup orphaned stuff after 3 days.
Also note that documentation on this inside GitLab runner is
inconsistent at best, see [this other MR](https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/2711) and [this issue](https://gitlab.com/gitlab-org/gitlab-runner-docker-cleanup/-/issues/21).
### rootless containers
TODO: consider podman for running containers more securely, and
TODO: consider podman for running containers more securely, and
possibly also to build container images inside GitLab CI, which would
possibly also to build container images inside GitLab CI, which would
otherwise require docker-in-docker (DinD), unsupported by
otherwise require docker-in-docker (DinD), unsupported by