Automatiser le Déploiement : Mettre en Place une Pipeline CI/CD avec GitLab CI et Kubernetes

Introduction

GitLab CI est un outil puissant pour l’intégration continue et le déploiement continu (CI/CD). Cet article explique comment configurer une pipeline CI/CD avec GitLab CI et Kubernetes.

Pré-requis

  • Un cluster Kubernetes fonctionnel.
  • Un projet GitLab avec accès administrateur.

Étapes de Configuration

  1. Configurer un Runner GitLab

    • Créer un namespace pour GitLab Runner

      kubectl create namespace gitlab-runner
    • Déployer GitLab Runner via Helm

      helm repo add gitlab https://charts.gitlab.io helm repo update helm install --namespace gitlab-runner gitlab-runner gitlab/gitlab-runner
    • Récupérer le token du Runner

Accéder à Settings -> CI/CD -> Runners dans votre projet GitLab

Copier le token de l’enregistrement du runner

Enregistrer le Runner avec GitLab

kubectl exec -it -n gitlab-runner $(kubectl get pods -n gitlab-runner -l app=gitlab-runner -o jsonpath='{.items[0].metadata.name}') -- gitlab-runner register \ --non-interactive \ --url https://gitlab.com/ \ --registration-token <YOUR_REGISTRATION_TOKEN> \ --executor kubernetes \ --kubernetes-namespace gitlab-runner \ --description "GitLab Runner" \ --tag-list "k8s,docker" \ --run-untagged \ --locked=false
  1. Configurer le pipeline GitLab CI

    • Créer un fichier .gitlab-ci.yml dans votre projet
      yaml
       
      stages: - build - deploy build: stage: build script: - docker build -t registry.gitlab.com/your-namespace/your-project:latest . - docker push registry.gitlab.com/your-namespace/your-project:latest deploy: stage: deploy script: - kubectl apply -f k8s/deployment.yaml
       
  2. Configurer l’accès à Docker Registry

    • Ajouter des variables de CI/CD pour Docker registry dans GitLab

      • Accéder à Settings -> CI/CD -> Variables
      • Ajouter DOCKER_REGISTRY_USER et DOCKER_REGISTRY_PASSWORD
    • Modifier le .gitlab-ci.yml pour utiliser ces variables
      yaml
       
      build: stage: build script: - docker login -u $DOCKER_REGISTRY_USER -p $DOCKER_REGISTRY_PASSWORD registry.gitlab.com - docker build -t registry.gitlab.com/your-namespace/your-project:latest . - docker push registry.gitlab.com/your-namespace/your-project:latest

Conclusion

En suivant ces étapes, vous aurez configuré une pipeline CI/CD avec GitLab CI et Kubernetes, automatisant ainsi le déploiement de vos applications conteneurisées.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut