2023-09-19 12:32:42 +02:00
|
|
|
---
|
2023-09-29 18:03:24 +02:00
|
|
|
- name: gitlab-runner | check vars are defined
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- gitlab_domain is defined
|
|
|
|
tags: ['docker_gitlab-runner']
|
|
|
|
|
|
|
|
- include_tasks: base.yml
|
2023-09-29 18:35:51 +02:00
|
|
|
tags: ['docker_gitlab-runner']
|
2023-09-29 18:03:24 +02:00
|
|
|
|
2023-09-29 18:19:49 +02:00
|
|
|
- name: gitlab-runner | create docker network
|
|
|
|
docker_network:
|
|
|
|
name: 'gitlab-runner'
|
|
|
|
tags: ['docker_gitlab-runner']
|
|
|
|
|
|
|
|
- name: gitlab-runner | create docker volumes
|
2023-09-19 12:32:42 +02:00
|
|
|
docker_volume:
|
|
|
|
name: '{{ item }}'
|
|
|
|
with_items:
|
|
|
|
- gitlab-runner-dind__var_lib_docker
|
2023-09-29 18:03:24 +02:00
|
|
|
- gitlab-runner-dind__certs
|
2023-09-19 12:32:42 +02:00
|
|
|
- gitlab-runner__home_gitlab-runner
|
2023-09-29 18:03:24 +02:00
|
|
|
- gitlab-runner__etc_gitlab-runner
|
2023-09-29 17:43:17 +02:00
|
|
|
tags: ['docker_gitlab-runner']
|
2023-09-19 12:32:42 +02:00
|
|
|
|
2023-09-29 18:19:49 +02:00
|
|
|
- name: gitlab-runner | configure config.toml
|
2023-09-19 12:32:42 +02:00
|
|
|
copy:
|
2023-09-29 18:15:24 +02:00
|
|
|
dest: '/var/lib/docker/volumes/gitlab-runner__etc_gitlab-runner/_data/config.toml'
|
2023-09-19 12:32:42 +02:00
|
|
|
mode: '0600'
|
|
|
|
content: |
|
2024-07-17 16:29:48 +02:00
|
|
|
concurrent = {{ gitlab_runner_concurrent | default(1) | int }}
|
2023-09-19 12:32:42 +02:00
|
|
|
check_interval = 0
|
2023-09-29 18:33:16 +02:00
|
|
|
|
2023-09-19 12:32:42 +02:00
|
|
|
[session_server]
|
|
|
|
session_timeout = 1800
|
2023-09-29 18:33:16 +02:00
|
|
|
|
2023-09-19 12:32:42 +02:00
|
|
|
[[runners]]
|
|
|
|
name = "{{ inventory_hostname }}"
|
|
|
|
url = "https://{{ gitlab_domain }}/"
|
2024-07-17 16:29:48 +02:00
|
|
|
{% if gitlab_runner_register_token is defined %}
|
|
|
|
token = "{{ gitlab_runner_register_token }}"
|
|
|
|
{% endif %}
|
2023-09-19 12:32:42 +02:00
|
|
|
executor = "docker"
|
|
|
|
[runners.docker]
|
|
|
|
host = "tcp://docker:2376/"
|
|
|
|
tls_cert_path = "/certs/client"
|
2024-07-17 16:29:48 +02:00
|
|
|
tls_verify = {{ gitlab_runner_tls_verify | default("true") }}
|
|
|
|
image = "{{ gitlab_runner_image | default('debian:stable-slim') }}"
|
|
|
|
privileged = {{ gitlab_runner_privileged | default("true") }}
|
|
|
|
disable_entrypoint_overwrite = {{ gitlab_runner_disable_entrypoint_overwrite | default("false") }}
|
|
|
|
oom_kill_disable = {{ gitlab_runner_oom_kill_disable | default("false") }}
|
|
|
|
disable_cache = {{ gitlab_runner_disable_cache | default("false") }}
|
2023-10-02 11:14:48 +02:00
|
|
|
volumes = ["/certs/client", "/var/run/docker.sock:/var/run/docker.sock:rw", "/cache:/cache", "/builds:/builds"]
|
2023-09-19 12:32:42 +02:00
|
|
|
shm_size = 0
|
|
|
|
pull_policy = ["always", "if-not-present"]
|
2024-07-17 16:29:48 +02:00
|
|
|
{% if gitlab_runner_extra_hosts is defined %}
|
|
|
|
extra_hosts = [{% for host in gitlab_runner_extra_hosts %}"{{ host }}"{{ ", " if not loop.last else "" }}{% endfor %}]
|
|
|
|
{% endif %}
|
2023-09-29 18:05:53 +02:00
|
|
|
notify: 'gitlab-runner-restart'
|
2023-09-29 17:43:17 +02:00
|
|
|
tags: ['docker_gitlab-runner']
|
2023-09-19 12:32:42 +02:00
|
|
|
|
2023-09-29 18:19:49 +02:00
|
|
|
- name: gitab-runner | configure cron garbage in dind
|
2023-09-19 12:32:42 +02:00
|
|
|
cron:
|
|
|
|
name: "gitlab_runner_garbage"
|
|
|
|
minute: "50"
|
|
|
|
hour: "*/2"
|
|
|
|
job: "/usr/bin/docker exec docker docker system prune -f; /usr/bin/docker exec docker docker volume prune -f 2>&1 |logger -t gitlab-runner"
|
2023-09-29 17:43:17 +02:00
|
|
|
tags: ['docker_gitlab-runner']
|
2023-09-19 12:32:42 +02:00
|
|
|
|
2024-03-20 17:01:08 +01:00
|
|
|
# - name: gitab-runner | purge dind cache
|
|
|
|
# cron:
|
|
|
|
# name: "purge_dind_ci_cache"
|
|
|
|
# minute: "30"
|
|
|
|
# hour: "04"
|
|
|
|
# job: "/usr/bin/docker exec -t docker /usr/bin/find /cache -mindepth 1 -mtime +7 -delete 2>&1 |logger -t gitlab-runner"
|
|
|
|
# tags: ['docker_gitlab-runner']
|