Provisionner des ressources Cloud Build avec Terraform

HashiCorp Terraform est un outil d'Infrastructure as Code (IaC) qui vous permet de provisionner et de gérer une infrastructure cloud. Terraform fournit des plug-ins appelés fournisseurs qui vous permettent d'interagir avec les fournisseurs cloud et d'autres API. Vous pouvez utiliser le fournisseur Terraform pour Google Cloud pour provisionner et gérer des ressources Google Cloud, y compris Cloud Build.

Fonctionnement de Terraform

Terraform utilise une syntaxe déclarative et axée sur la configuration, que vous pouvez utiliser pour décrire l'infrastructure que vous souhaitez provisionner dans votre projet Google Cloud. Après avoir créé cette configuration dans un ou plusieurs fichiers de configuration Terraform, vous pouvez utiliser la CLI Terraform pour l'appliquer à vos ressources Cloud Build.

Les étapes suivantes expliquent le fonctionnement de Terraform :

  1. Vous décrivez l'infrastructure que vous souhaitez provisionner dans un fichier de configuration Terraform. Vous n'avez pas besoin d'écrire de code décrivant comment provisionner l'infrastructure. Terraform provisionne l'infrastructure pour vous.
  2. Vous devez exécuter la commande terraform plan, qui évalue votre configuration et génère un plan d'exécution. Vous pouvez examiner le plan et le modifier si nécessaire.
  3. Exécutez la commande terraform apply, qui effectue les actions suivantes :
    1. Il provisionne votre infrastructure en fonction de votre plan d'exécution en appelant les API Cloud Build correspondantes en arrière-plan.
    2. Elle crée un fichier d'état Terraform, qui est un fichier JSON qui mappe les ressources de votre fichier de configuration à celles de l'infrastructure réelle. Terraform utilise ce fichier pour conserver un enregistrement de l'état le plus récent de votre infrastructure et pour déterminer quand créer, mettre à jour et détruire des ressources.
    3. Lorsque vous exécutez terraform apply, Terraform utilise le mappage du fichier d'état pour comparer l'infrastructure existante au code et apporter les modifications nécessaires:
      • Si un objet ressource est défini dans le fichier de configuration, mais n'existe pas dans le fichier d'état, Terraform le crée.
      • Si un objet "ressource" existe dans le fichier d'état, mais que sa configuration est différente de celle de votre fichier de configuration, Terraform met à jour la ressource pour qu'elle corresponde à votre fichier de configuration.
      • Si un objet ressource dans le fichier d'état correspond à votre fichier de configuration, Terraform ne modifie pas la ressource.

    Guides basés sur Terraform pour Cloud Build

    Le tableau suivant répertorie tous les guides d'utilisation et tutoriels basés sur Terraform pour Cloud Build:

    Guide Détails
    Se connecter à un dépôt GitHub Ce guide explique comment connecter un dépôt GitHub à Cloud Build à l'aide de Terraform.
    Déployer une application sur Compute Engine Ce guide explique comment effectuer des déploiements bleu-vert sans temps d'arrêt sur des groupes d'instances gérés (MIG) Compute Engine à l'aide de Cloud Build et Terraform.

    Modules et plans Terraform pour Cloud Build

    Les modules et les plans vous aident à automatiser le provisionnement et la gestion des ressources Google Cloud à grande échelle. Un module est un ensemble réutilisable de fichiers de configuration Terraform qui crée une abstraction logique des ressources Terraform. Un plan est un package de modules déployables et réutilisables, ainsi qu'une stratégie qui implémente et documente une solution spécifique.

    Le tableau suivant répertorie tous les modules et plans associés à Cloud Build:

    Module ou plan Détails
    Pipeline CI/CD sécurisé Ce module permet aux clients Google Cloud de déployer rapidement un pipeline CI/CD sécurisé, en mettant en œuvre de nombreuses fonctions décrites dans la section Passer à la sécurité avant tout.
    terraform-google-bootstrap Ce module aide à amorcer une organisation Google Cloud en créant toutes les ressources et autorisations requises pour commencer à utiliser le kit Cloud Foundation. Pour les utilisateurs qui souhaitent se servir de Cloud Build et de Cloud Source Repositories pour le code de base, ce module contient un sous-module qui amorce toutes les ressources requises.

    Ressources Terraform pour Cloud Build

    Les ressources sont les éléments fondamentaux du langage Terraform. Chaque bloc de ressources décrit un ou plusieurs objets d'infrastructure, tels que des réseaux virtuels ou des instances de calcul.

    Le tableau suivant répertorie les ressources Terraform disponibles pour Cloud Build:

    Service Cloud Build Ressources Terraform Sources de données
    Cloud Build v1 google_cloudbuild_trigger
    Cloud Build v2 google_cloudbuildv2_connection_iam_policy

    Étapes suivantes