Skip to content

Draft: Run tests using shell executor, not docker

Mitchell Nielsen requested to merge run-tests-without-dind into master

Overview

Adjusts the .test job template, removing the dind service and adjusting the labels to select a node with the shell executor rather than the docker executor.

At the time of opening this MR, this is a test whether running gitlab-qa in a geo scenario directly on a host rather than within DinD fixes the issues we're seeing: omnibus-gitlab#5768 (moved).

This change includes a tag named shell rather than docker, regarding the tags assigned to the Runner upon registration on the VM created for this demo. This means a maintainer on the gitlab-qa team will need to provide a runner registration from the settings section on the project page so the runner can be registered before the related jobs can run.

Additional context

The tests currently run using docker-in-docker, using the services key in GitLab CI to link the CI container with the dind container. From what I've seen, DinD can misbehave and complicate workloads given that there's another level of 'containerization'. The services key in GitLab CI (to my knowledge, someone please correct me if this is wrong) uses links. As you can tell from that documentation page, it's considered a legacy flag and may be removed in the future. That's one reason this MR could be a good change in general.

Additionally, running the tests directly on bare metal rather than within the context of another container has potential to increase performance of the tests. And of course, this approach is a little more 'boring', which we like here!

Edited by Mitchell Nielsen

Merge request reports