Skip to main content

CI / CD avec GKE et Cloud Build

Objectif

https://medium.com/platformer-blog/ci-cd-with-gke-and-google-cloud-build-98a797ecf346

Nous allons voir comment configurer une intégration continue entièrement géré par GCP via le service Cloud Build de manière à gérer un déploiement continue sur ukjinn Cluster Google Kubernetes Engine.

Le workflow à configurer sera le suivant :

  1. Push sur un dépôt distant (GitHub) sur une ou plusieurs branches définies
  2. Construction d'une image docker
  3. Mis à jour de l'image dans le registre géré par GCP
  4. Provisioning des variables d'environnement dans nos fichiers de déploiements kubernetes
  5. Mise à jour du déploiement Kubernetes sur notre cluster GKE

Pré-requis

Pour effectuer ces étapes, vous devez impérativement avoir :

  • Un dépôt Git (dans notre exemple sur GitHub) dont vous êtes propriétaire
  • Un Dockerfile fonctionnel sur votre dépôt
  • Un cluster GKE à disposition (Google Kubernetes Engine)

Ajout d'un registre docker sur GCP

Rendez-vous sur Google Cloud Platform, et dans la section CI/CD > Artifact Registry, puis sur Créer un dépôt

image-1652636938346.png

image-1652636966204.png

  • Choisissez le type de dépôt Docker
  • Choisissez une région à proximité de votre localisation
  • Créer
image-1652637057337.png

Votre registre devrait apparaitre dans la liste après quelques minutes. 

image-1652637200090.png

Vous pouvez obtenir l'adresse de votre registre en allant dans les détails de ce dernier.

image-1652637212903.png

Création d'un déclencheur Cloud Build

Ajout et configuration d'un service utilisateur

Pour permettre à notre service Cloud Build, il faut lui créer un compte de service qui possédera les droits nécessaires pour ajouter une image dans notre registre et mettre à jour notre cluster Kubernetes.

Allez dans la section Autres produits > IAM et adminstration > IAM

Vous devriez y trouver un utilisateur portant un nom avec ce format là :

<project-number>@cloudbuild.gserviceaccount.com

Fichiers de configuration sur le dépôt