From e33018f74529dd80845088cf871cc01ca4efdd96 Mon Sep 17 00:00:00 2001 From: Saibotk Date: Mon, 20 Jan 2025 00:27:06 +0100 Subject: [PATCH] remove!(gitlab_runner): unused --- playbooks/gitlab_runner.yml | 32 ----- roles/gitlab_runner/README.md | 87 -------------- roles/gitlab_runner/defaults/main.yml | 109 ------------------ roles/gitlab_runner/meta/main.yml | 43 ------- roles/gitlab_runner/tasks/main.yml | 86 -------------- roles/gitlab_runner/templates/config.toml | 63 ---------- .../templates/docker-compose.yml | 33 ------ 7 files changed, 453 deletions(-) delete mode 100644 playbooks/gitlab_runner.yml delete mode 100644 roles/gitlab_runner/README.md delete mode 100644 roles/gitlab_runner/defaults/main.yml delete mode 100644 roles/gitlab_runner/meta/main.yml delete mode 100644 roles/gitlab_runner/tasks/main.yml delete mode 100644 roles/gitlab_runner/templates/config.toml delete mode 100644 roles/gitlab_runner/templates/docker-compose.yml diff --git a/playbooks/gitlab_runner.yml b/playbooks/gitlab_runner.yml deleted file mode 100644 index 078ccd3..0000000 --- a/playbooks/gitlab_runner.yml +++ /dev/null @@ -1,32 +0,0 @@ ---- -# Infrastructure -# Ansible instructions to deploy the infrastructure -# Copyright (C) 2019-2020 Christoph (Sheogorath) Kern -# Copyright (C) 2020 Saibotk -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, version 3 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -- name: Install & configure GitLab Runner - hosts: gitlab_runner - roles: - - docker - - docker_cleanup - - gitlab_runner - tasks: - - name: Install docker image prune crontab - ansible.builtin.cron: - name: "Prune unused docker images" - minute: "0" - hour: "*/4" - job: "docker image prune -f" - become: true diff --git a/roles/gitlab_runner/README.md b/roles/gitlab_runner/README.md deleted file mode 100644 index 4abcab7..0000000 --- a/roles/gitlab_runner/README.md +++ /dev/null @@ -1,87 +0,0 @@ -gitlab_runner -========= - -This will set up a [gitlab-runner](https://docs.gitlab.com/runner/) instance via Docker, that is used to run CI jobs from a GitLab instance. -Multiple different runners can be created and configured for this runner instance. - -**NOTE: Currently this will only allow to configure a docker, shell & docker+machine runner.** - -**NOTE2: When deploying docker-machines with the privileged flag enabled, only use this in a trusted environment or set max builds to 1 to prevent malicious actions affecting other builds.** - -Requirements ------------- - -You will need to have docker and docker-compose installed or declared as dependencies with their respective roles. - -Role Variables --------------- - -**Please look at the [defaults/main.yml](defaults/main.yml) for all available variables and their description.** - -**Note: Lines that are commented out via `#` are usually still valid/used variables, but they are not defined by default, so they might enable a feature, when uncommenting/defining them!** - -### Example autoscaling Hetzner-Runner configuration: -```yaml -# This image has the hetzner plugin pre-installed -gitlabrunner_image: "quay.io/shivering-isles/gitlab-hetzner-runner" -gitlabrunner_image_version: 13.6.0 - -# Extra paths that should be created (eg. to be mounted in the container) -gitlabrunner_extra_paths: - - "{{ gitlabrunner_install_location }}/hetzner_machine" - -gitlabrunner_runners: - # The URL of the instance that this runner should be associated with - - gitlab_url: https://gitlab.example.com - - # The token that you received when registering the runner (not the register token!!!) - # Register a runner first to obtain a token: https://docs.gitlab.com/runner/register/index.html#docker - # Can be done via the API and the registration token: eg. `curl --request POST "https://gitlab.example.com/api/v4/runners" --form "token="` - gitlab_token: "ENTER_YOUR_TOKEN_HERE" - - # Adjust the name of the runner - name: "hetzner-docker-auto-scale" - - # Set the docker executor - executor: "docker+machine" - - # Should the docker runner start containers as privileged? (eg. needed for docker in docker / building with docker etc) - docker_privileged: true - # Should the docker socket be mounted into the containers? (SECURITY NOTE: This is critical, as it is effectively the same as root!) - docker_mount_socket: true - - # The docker-machine driver that should be used (the server provider) - machine_driver: "hetzner" - # The template for naming new machines - machine_name: "machine-%s-gitlab-runner" - # The maximum amount of builds on a machine (VM) before a new one will be used - machine_max_builds: 20 - # Time (in seconds) for machine to be in Idle state before it is removed. - machine_idle_time: 1800 - # Number of machines, that need to be created and are waiting in Idle state. - machine_idle_count: 0 - - # The "MachineOptions" field with parameters that depend on the driver (these usually provide the api token, which machine type is used etc...) - machine_options: - hetzner-api-token: "REPLACE_WITH_YOUR_API_TOKEN" # The Hetzner specific API token - hetzner-image: "debian-10" # The image that should be used for new machines - hetzner-server-type: "cx11" # The server type (the hardware configuration) to use for a new machine - hetzner-server-location: "fsn1" # The server location to use for a new machine - engine-install-url: "https://releases.rancher.com/install-docker/19.03.9.sh" # Workaround until 20.10 gets an update https://github.com/JonasProgrammer/docker-machine-driver-hetzner/issues/54 - - # Extra volumes that should be added to the gitlab runner container. - gitlabrunner_extra_volumes: - - "./hetzner_machine:/root/.docker/machine" - -``` - -Dependencies ------------- - -- docker -- docker-compose - -License -------- - -GPL-3.0-only diff --git a/roles/gitlab_runner/defaults/main.yml b/roles/gitlab_runner/defaults/main.yml deleted file mode 100644 index e900fe2..0000000 --- a/roles/gitlab_runner/defaults/main.yml +++ /dev/null @@ -1,109 +0,0 @@ ---- -# Default variables for the gitlab_runner role - -# Infrastructure -# Ansible instructions to deploy the infrastructure -# Copyright (C) 2020 Saibotk -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, version 3 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Install location settings -gitlab_runner_install_location: "/srv/gitlab-runner" -gitlab_runner_config_location: "{{ gitlab_runner_install_location }}/config" - -# The runner image & tag/version to be used -gitlab_runner_image: "docker.io/gitlab/gitlab-runner" -# renovate: depName=docker.io/gitlab/gitlab-runner -gitlab_runner_image_version: "v17.5.3" -gitlab_runner_image_variant: "alpine-{{ gitlab_runner_image_version }}" - -# Extra paths that should be created (eg. to be mounted in the container) -gitlab_runner_extra_paths: [] - -# Enable or disable selinux handling -gitlab_runner_selinux_enabled: true - -# Should the docker socket be mounted to the gitlab runner (usually needed for the docker executor) -gitlab_runner_mount_docker_socket: false - -# Extra volumes that should be added to the gitlab runner container. -gitlab_runner_extra_volumes: [] - -# The maximum overall concurrent running jobs. This is the most upper limit of number of jobs using all defined runners, local and autoscale. -gitlab_runner_concurrent: 1 - -# The interval in seconds, to check for available jobs. (0 means default value is used. -# See https://docs.gitlab.com/runner/configuration/advanced-configuration.html#how-check_interval-works) -gitlab_runner_check_interval: 0 - -# This is used to define all the runners, that may be served by this gitlab-runner -# !! YOU WILL NEED TO ADJUST THIS! BELOW IS A FULL EXAMPLE! -gitlab_runner_runners: - # The URL of the instance that this runner should be associated with - - gitlab_url: https://gitlab.example.com - - # The token that you received when registering the runner (not the register token!!!) - # Register a runner first to obtain a token: https://docs.gitlab.com/runner/register/index.html#docker - # Can be done via the API and the registration token: - # curl --request POST "https://gitlab.example.com/api/v4/runners" --form "token=" - gitlab_token: - - # The name of the runner - name: "docker-runner" - - # The limit of machines created by the runner and with that also the limit of jobs that can be handled concurrently by this specific runner. - limit: 1 - - # The executor that is used for this runner. - # Eg. "docker", "shell", "docker+machine" - executor: "docker" - - # Should the docker runner start containers as privileged? (eg. needed for docker in docker / building with docker etc) - docker_privileged: false - # Should the docker socket be mounted into the containers? (SECURITY NOTE: This is critical, as it is effectively the same as root!) - docker_mount_socket: false - # The image that should be used for jobs by default - docker_image: "docker.io/library/docker:stable" - - # The docker-machine driver that should be used (the server provider) - machine_driver: "hetzner" - # The template for naming new machines - machine_name: "machine-%s-gitlab-runner" - # The maximum amount of builds on a machine (VM) before a new one will be used - machine_max_builds: 20 - # Time (in seconds) for machine to be in Idle state before it is removed. - machine_idle_time: 1800 - # Number of machines, that need to be created and are waiting in Idle state. - machine_idle_count: 0 - - # The "MachineOptions" field with parameters that depend on the driver (these usually provide the api token, which machine type is used etc...) - # This for example are parameters for the Hetzner driver (but remember, that this will need the hetzner docker-machine plugin) - # The options can also be omitted if you do not need any. - machine_options: - # The Hetzner specific API token - hetzner-api-token: "TOKENHERE" - # The image that should be used for new machines - hetzner-image: "debian-10" - # The server type (the hardware configuration) to use for a new machine - hetzner-server-type: "cx11" - # The server location to use for a new machine - hetzner-server-location: "fsn1" - - # S3 Runner cache configuration to improve performance between runs - # (see https://docs.gitlab.com/runner/configuration/autoscale.html#distributed-runners-caching) - # The options can also be omitted if you do not want to configure a cache - cache_s3: - server: s3.example.com - access_key: "" - secret_key: "" - bucket: "runner" diff --git a/roles/gitlab_runner/meta/main.yml b/roles/gitlab_runner/meta/main.yml deleted file mode 100644 index d13869d..0000000 --- a/roles/gitlab_runner/meta/main.yml +++ /dev/null @@ -1,43 +0,0 @@ -galaxy_info: - author: saibotk - description: "Deploys a gitlab-runner using Docker." - license: GPL-3.0-only - min_ansible_version: "2.9" - standalone: true - - platforms: - - name: EL - versions: - - all - - name: GenericUNIX - versions: - - all - - name: Fedora - versions: - - all - - name: opensuse - versions: - - all - - name: GenericBSD - versions: - - all - - name: FreeBSD - versions: - - all - - name: Ubuntu - versions: - - all - - name: SLES - versions: - - all - - name: GenericLinux - versions: - - all - - name: Debian - versions: - - all - - galaxy_tags: [] - -dependencies: - - role: docker diff --git a/roles/gitlab_runner/tasks/main.yml b/roles/gitlab_runner/tasks/main.yml deleted file mode 100644 index 748b2d7..0000000 --- a/roles/gitlab_runner/tasks/main.yml +++ /dev/null @@ -1,86 +0,0 @@ ---- -# Tasks file for the gitlab_runner role - -# Infrastructure -# Ansible instructions to deploy the infrastructure -# Copyright (C) 2019-2020 Christoph (Sheogorath) Kern -# Copyright (C) 2020 Alexander Wellbrock -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, version 3 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -- name: Update default SELinux contexts - community.general.sefcontext: - target: "{{ item }}(/.*)?" - setype: "container_file_t" - state: present - with_items: - - "{{ gitlab_runner_config_location }}" - - "{{ gitlab_runner_extra_paths }}" - when: - - gitlab_runner_selinux_enabled - become: true - -- name: Create install directory - ansible.builtin.file: - path: "{{ item }}" - state: directory - mode: "0700" - owner: "root" - group: "root" - with_items: - - "{{ gitlab_runner_install_location }}" - become: true - -- name: Create config directory - ansible.builtin.file: - path: "{{ item }}" - state: directory - mode: "0700" - owner: "root" - group: "root" - setype: "container_file_t" - with_items: - - "{{ gitlab_runner_config_location }}" - - "{{ gitlab_runner_extra_paths }}" - become: true - -- name: Deploy docker-compose.yml - ansible.builtin.template: - src: docker-compose.yml - dest: "{{ gitlab_runner_install_location }}/docker-compose.yml" - mode: "0600" - owner: "root" - group: "root" - validate: docker compose -f %s config -q - tags: - - docker - become: true - -- name: Deploy config.toml for gitlab-runner - ansible.builtin.template: - src: config.toml - dest: "{{ gitlab_runner_config_location }}/config.toml" - mode: "0600" - owner: "root" - group: "root" - become: true - -- name: Compose gitlab-runner - community.docker.docker_compose_v2: - state: present - project_src: "{{ gitlab_runner_install_location }}" - pull: always - remove_orphans: true - tags: - - gitlab-runner - become: true diff --git a/roles/gitlab_runner/templates/config.toml b/roles/gitlab_runner/templates/config.toml deleted file mode 100644 index c8802a9..0000000 --- a/roles/gitlab_runner/templates/config.toml +++ /dev/null @@ -1,63 +0,0 @@ -# Infrastructure -# Ansible instructions to deploy the infrastructure -# Copyright (C) 2019-2020 Christoph (Sheogorath) Kern -# Copyright (C) 2020 Saibotk -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, version 3 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -concurrent = {{ gitlab_runner_concurrent }} -check_interval = {{ gitlab_runner_check_interval }} - -{% for gitlabrunner in gitlab_runner_runners %} -[[runners]] - name = "{{ gitlabrunner.name }}" - limit = {{ gitlabrunner.limit | default(1) }} - url = "{{ gitlabrunner.gitlab_url }}" - token = "{{ gitlabrunner.gitlab_token }}" - executor = "{{ gitlabrunner.executor }}" -{% if gitlabrunner.executor == "docker" or gitlabrunner.executor == "docker+machine" %} - [runners.docker] - image = "{{ gitlabrunner.docker_image | default("docker.io/library/docker:stable") }}" - privileged = {{ gitlabrunner.docker_privileged | bool | lower }} - volumes = [ - "/cache", -{% if gitlabrunner.docker_mount_socket %} - "/var/run/docker.sock:/var/run/docker.sock" -{% endif %} - ] -{% endif %} -{% if gitlabrunner.executor == "docker+machine" %} - [runners.machine] - IdleCount = {{ gitlabrunner.machine_idle_count }} - IdleTime = {{ gitlabrunner.machine_idle_time }} - MaxBuilds = {{ gitlabrunner.machine_max_builds }} - MachineDriver = "{{ gitlabrunner.machine_driver }}" - MachineName = "{{ gitlabrunner.machine_name }}" - MachineOptions = [ -{% for key, value in gitlabrunner.machine_options.items() %} - "{{ key }}={{ value }}", -{% endfor %} - ] -{% endif %} - [runners.cache] -{% if gitlabrunner.cache_s3 is defined %} - Type = "s3" - Shared = false - [runners.cache.s3] - ServerAddress = "{{ gitlabrunner.cache_s3.server }}" - AccessKey = "{{ gitlabrunner.cache_s3.access_key }}" - SecretKey = "{{ gitlabrunner.cache_s3.secret_key }}" - BucketName = "{{ gitlabrunner.cache_s3.bucket }}" - Insecure = false -{% endif %} -{% endfor %} diff --git a/roles/gitlab_runner/templates/docker-compose.yml b/roles/gitlab_runner/templates/docker-compose.yml deleted file mode 100644 index b9025fc..0000000 --- a/roles/gitlab_runner/templates/docker-compose.yml +++ /dev/null @@ -1,33 +0,0 @@ -{{ ansible_managed | comment }} - -# Infrastructure -# Ansible instructions to deploy the infrastructure -# Copyright (C) 2019-2020 Christoph (Sheogorath) Kern -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, version 3 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -version: '2' -services: - runner: - image: {{ gitlab_runner_image }}:{{ gitlab_runner_image_variant }} - mem_limit: 128mb - memswap_limit: 256mb - volumes: - - "{{ gitlab_runner_config_location }}:/etc/gitlab-runner" -{% if gitlab_runner_mount_docker_socket %} - - "/var/run/docker.sock:/var/run/docker.sock" -{% endif %} -{% for item in gitlab_runner_extra_volumes %} - - "{{item}}" -{% endfor %} - restart: always