Skip to content

GitLab Runner

GitLab Runner installé sur le cluster k3s avec l'executor Kubernetes. Exécute les pipelines CI/CD directement dans des pods.


Architecture

GitLab.com (CI/CD)
    │
    │ déclenche pipeline
    │
    ▼
GitLab Runner (namespace gitlab-runner, k3s-worker01)
    │
    │ crée un pod par job
    │
    ▼
Pod Kubernetes (executor kubernetes)
    │
    ├── image: python:3.13 (test, sast)
    ├── image: docker:27-dind (build, scan, push)
    └── image: zaproxy (dast)

Installation

Déployé via Helm par le rôle Ansible gitlab_runner :

helm repo add gitlab https://charts.gitlab.io
helm repo update

helm upgrade --install gitlab-runner gitlab/gitlab-runner \
    --namespace gitlab-runner --create-namespace \
    --set gitlabUrl=https://gitlab.mounik.ovh \
    --set runnerRegistrationToken=<token> \
    --set runners.executor=kubernetes \
    --set rbac.create=true

Configuration

Paramètre Valeur
Executor kubernetes
Image par défaut python:3.13-slim
Namespace gitlab-runner
Tags kubernetes
Concurrent 4 jobs max

Tags dans .gitlab-ci.yml

test:
  stage: test
  tags:
    - kubernetes
  script:
    - pytest

Cache et volumes

Le runner monte automatiquement :

  • /var/run/docker.sock pour Docker-in-Docker
  • /cache pour le cache des dépendances entre jobs

Vérification

kubectl get pods -n gitlab-runner
kubectl logs -n gitlab-runner -l app=gitlab-runner

# Vérifier l'enregistrement dans GitLab
# Settings → CI/CD → Runners

Pour aller plus loin