summaryrefslogtreecommitdiff
path: root/qa/qa/service/docker_run/gitlab_runner.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/service/docker_run/gitlab_runner.rb')
-rw-r--r--qa/qa/service/docker_run/gitlab_runner.rb16
1 files changed, 13 insertions, 3 deletions
diff --git a/qa/qa/service/docker_run/gitlab_runner.rb b/qa/qa/service/docker_run/gitlab_runner.rb
index a5b129eb1f9..63fbf758231 100644
--- a/qa/qa/service/docker_run/gitlab_runner.rb
+++ b/qa/qa/service/docker_run/gitlab_runner.rb
@@ -38,11 +38,10 @@ module QA
def register!
shell <<~CMD.tr("\n", ' ')
- docker run -d --rm --entrypoint=/bin/sh
- --network #{runner_network} --name #{@name}
+ docker run -d --rm --network #{runner_network} --name #{@name}
#{'-v /var/run/docker.sock:/var/run/docker.sock' if @executor == :docker}
--privileged
- #{@image} -c "#{register_command}"
+ #{@image} #{add_gitlab_tls_cert if @address.include? "https"} && docker exec --detach #{@name} sh -c "#{register_command}"
CMD
# Prove airgappedness
@@ -82,6 +81,7 @@ module QA
args << '--docker-tlsverify=false'
args << '--docker-privileged=true'
args << "--docker-network-mode=#{network}"
+ args << "--docker-volumes=/certs/client"
end
<<~CMD.strip
@@ -102,6 +102,16 @@ module QA
wget --retry-connrefused --waitretry=1 --read-timeout=15 --timeout=10 -t 2 http://registry.gitlab.com > /dev/null 2>&1 && (echo "Airgapped network faulty. Connectivity wget check failed." && exit 1) || (echo "Airgapped network confirmed. Connectivity wget check passed." && exit 0)
CMD
end
+
+ def add_gitlab_tls_cert
+ gitlab_tls_certificate = Tempfile.new('gitlab-cert')
+ gitlab_tls_certificate.write(Runtime::Env.gitlab_tls_certificate)
+ gitlab_tls_certificate.close
+
+ <<~CMD
+ && docker cp #{gitlab_tls_certificate.path} #{@name}:/etc/gitlab-runner/certs/gitlab.test.crt
+ CMD
+ end
end
end
end