Nul ne peut nier que les runners de CI / CD sont des composants clés du processus de livraison continue, permettant aux équipes de développement de livrer rapidement et régulièrement des logiciels de haute qualité. Cependant, ces runners peuvent présenter plusieurs problématiques, notamment en termes de performance, de coûts, de complexité de configuration et de sécurité. Il est donc important de prendre en compte ces problématiques lors de la mise en place et de la gestion de runners de CI / CD, afin de garantir la qualité et la fiabilité du processus de livraison continue. Cela peut être réalisé en utilisant des runners personnalisés bien configurés.
Dans cet article, nous allons configurer une pipeline CI / CD ainsi que son Runner qui utilisera l’éxécuteur Kubernetes.
GitLab est un outil émergent qui renforce l'un des piliers de DevOps appelé CI / CD Pipeline. Tout comme nous avons des exécuteurs dans Jenkins, GitLab a des Runners qui agissent comme une application à la demande et exécutent les instructions définies dans les scripts GitLab Pipeline à la racine du projet.
Terraform est un outil open source qui permet la gestion programmable et reproductible des ressources d'infrastructure. Nous allons l'utiliser pour configurer le Runner de la pipeline CI / CD dans Gitlab en utilisant Helm pour la configuration du cluster Kubernetes.
Helm est un outil open source de gestion de packages pour Kubernetes. Il permet de déployer, de gérer et de mettre à jour des applications sur un cluster Kubernetes en utilisant des charts, qui sont des packages préconfigurés contenant les fichiers de configuration, les dépendances et les templates nécessaires pour déployer une application.
Kubernetes est une plateforme open-source d'orchestration de conteneurs pour la gestion automatisée de déploiement, de mise à l'échelle et de gestion des applications conteneurisées dans des environnements de cloud computing ou sur site.
Dans ce tutoriel nous allons utiliser la chart Gitlab Runner pour la configuration de notre Runner, téléchargez le fichier values.yml
et modifiez la configuration suivante:
#Pour plus d'informations, visitez <https://docs.gitlab.com/runner/install/kubernetes.html>
config: |
[[runners]]
[runners.kubernetes]
namespace = "{{.Release.Namespace}}"
image = "flawnrayen/docker-runner:latest"
privileged = true
[[runners.kubernetes.volumes.empty_dir]]
name = "docker-certs"
mount_path = "/certs/client"
medium = "Memory"
Cette configuration permet:
flawnrayen/docker-runner
.