A special machine (currently `chi-node-13`) was built to allow builds
A special machine (currently `chi-node-13`) was built to allow builds
...
@@ -476,7 +537,9 @@ We currently use the following tags:
...
@@ -476,7 +537,9 @@ We currently use the following tags:
be added for other OS
be added for other OS
***executor** type: `docker`, `KVM`, etc. `docker` are the typical
***executor** type: `docker`, `KVM`, etc. `docker` are the typical
runners, `KVM` runners are possibly more powerful and can, for
runners, `KVM` runners are possibly more powerful and can, for
example, run Docker-inside-Docker (DinD)
example, run Docker-inside-Docker (DinD), note that `docker` can
also mean a `podman` runner, which is tagged on top of `docker`, as
a feature
***memory** size: `64GB`, `32GB`, `4GB`, etc.
***memory** size: `64GB`, `32GB`, `4GB`, etc.
***hosting** provider:
***hosting** provider:
*`tpa`: runners managed by the sysadmin team
*`tpa`: runners managed by the sysadmin team
...
@@ -491,6 +554,8 @@ We currently use the following tags:
...
@@ -491,6 +554,8 @@ We currently use the following tags:
one such job may run at a time on a given runner
one such job may run at a time on a given runner
*`verylarge`: same as `large`, with sysctl tweaks to allow high
*`verylarge`: same as `large`, with sysctl tweaks to allow high
numbers of processes (runners with >1TB memory)
numbers of processes (runners with >1TB memory)
*`podman`: a `docker` executor which talks to the `podman` socket
instead of Docker, might be better suited to build container images
Use tags in your configuration only if your job can be fulfilled by
Use tags in your configuration only if your job can be fulfilled by
only some of those runners. For example, only specify a memory tag if
only some of those runners. For example, only specify a memory tag if
...
@@ -572,17 +637,15 @@ had to tweak this to deal with out of disk issues.
...
@@ -572,17 +637,15 @@ had to tweak this to deal with out of disk issues.
### rootless containers
### rootless containers
We are considering [podman](https://podman.io/) for running containers more securely:
We are testing [podman](https://podman.io/) for running containers more securely:
because they can run containers "rootless" (without running as root on
because they can run containers "rootless" (without running as root on
the host), they are generally thought to be better immune against
the host), they are generally thought to be better immune against
container escapes. See [those instructions](https://github.com/jonasbb/podman-gitlab-runner). Do note that custom
container escapes.
executors have limitations that the default Docker executor do not,
see for example the [lack of ENTRYPOINT support](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27301).
This could also possibly make it easier to build containers inside
This could also possibly make it easier to build containers inside
GitLab CI, which would otherwise require docker-in-docker (DinD),
GitLab CI, which would otherwise require docker-in-docker (DinD),
unsupported by upstream. This can be done with [buildah](https://buildah.io/) using, for
unsupported by upstream. See [those GitLab instructions](https://docs.gitlab.com/runner/executors/docker.html#use-podman-to-build-container-images-from-a-dockerfile) for
example, [those instructions](https://medium.com/prgcont/using-buildah-in-gitlab-ci-9b529af19e42).