Créer votre pipeline et vos cibles de livraison

Cette page explique comment créer le pipeline de livraison et les cibles, qui décrivent où et comment Cloud Deploy déploie votre application. Consultez la section Schéma du fichier de configuration pour obtenir une description de la structure de fichiers YAML pour les pipelines de livraison et les cibles.

À propos du pipeline de livraison et des cibles

Votre pipeline de livraison décrit une progression de cibles de déploiement. Vous pouvez définir ces cibles dans le même fichier que le pipeline de livraison, ou dans un ou plusieurs fichiers distincts.

Après avoir créé le pipeline de livraison et le ou les fichiers de définition cible, exécutez gcloud deploy apply sur chacun de ces fichiers pour les enregistrer en tant que ressources Cloud Deploy.

Définir le pipeline de livraison et les cibles

La structure du pipeline de livraison et des fichiers de configuration cibles est décrite ici.

Vous pouvez donner à ce fichier le nom que vous voulez. Par convention, une configuration de pipeline de livraison qui inclut des définitions de cible est appelée clouddeploy.yaml, et une configuration qui fait référence à des cibles définies dans un ou plusieurs fichiers distincts est nommée delivery-pipeline.yaml.

La cible peut pointer vers GKE, GKE Enterprise ou Cloud Run. Dans un pipeline de livraison, toutes les cibles doivent faire référence au même type d'environnement d'exécution (l'ensemble de GKE ou GKE Enterprise, par exemple).

Créer un pipeline de livraison et des cibles à l'aide de la console Google Cloud

Vous pouvez utiliser la console Google Cloud pour créer un pipeline de livraison et une ou plusieurs cibles. Cette approche est utile pour tester Cloud Deploy, mais elle n'est pas adaptée aux charges de travail de production. (Vous pouvez également utiliser la console Google Cloud pour créer une version.)

Pour créer le pipeline de livraison:

  1. Sur la page Pipelines de livraison, cliquez sur Créer.

  2. Indiquez un nom (ou conservez le paramètre par défaut) et, éventuellement, une description.

  3. Sélectionnez votre région.

  4. Choisissez votre environnement d'exécution.

    Pour GKE, choisissez Google Kubernetes Engine ou Cloud Run s'il s'agit de l'environnement d'exécution vers lequel vous effectuez le déploiement.

  5. Sous Nouvelle cible, indiquez un nom (ou conservez le nom par défaut).

  6. Si vous souhaitez exiger une approbation sur cette cible, cochez la case Exiger une approbation pour les déploiements.

  7. Si vous souhaitez utiliser une stratégie de déploiement Canary sur cette cible, cochez la case Activer la version Canary.

  8. Cliquez sur OK.

  9. Cliquez sur Ajouter une cible et suivez les étapes ci-dessous pour chaque cible supplémentaire que vous souhaitez créer.

  10. Une fois toutes vos cibles définies, cliquez sur Créer pour créer le pipeline de livraison et les ressources cibles.

Enregistrer le pipeline de livraison et les cibles

Si vous avez créé votre pipeline et vos cibles à l'aide de la console Google Cloud, cette étape n'est pas nécessaire.

Pour enregistrer votre pipeline de livraison avec Cloud Deploy, vous devez exécuter gcloud deploy apply une fois pour chaque fichier de définition distinct. Autrement dit, si vous définissez trois cibles dans trois fichiers, vous exécutez la commande quatre fois : une fois pour le pipeline de livraison et une fois pour chaque cible.

La commande suivante enregistre un pipeline de livraison avec ses cibles définies dans le même fichier.

gcloud deploy apply --file=PIPELINE_CONFIG \
                    --region=LOCATION \
                    --project=PROJECT

Vous disposez maintenant d'un pipeline de livraison qui peut gérer le déploiement de vos versions et cible les ressources pouvant être utilisées par n'importe quel pipeline de livraison dans le même projet et la même région.

Exemple de fichier unique

Dans cet exemple, la commande enregistre un pipeline de livraison et des cibles qui sont toutes définies dans le même fichier:

gcloud deploy apply --file=clouddeploy.yaml --region=us-central1

Exemple utilisant des fichiers distincts

Pour cet exemple, trois cibles sont définies dans trois fichiers distincts. Vous exécutez donc quatre commandes:

gcloud deploy apply --file=delivery-pipeline.yaml --region=us-central1 && \
gcloud deploy apply --file=target_dev.yaml --region=us-central1 && \
gcloud deploy apply --file=target_staging.yaml --region=us-central1 && \
gcloud deploy apply --file=target_prod.yaml --region=us-central1

L'option --region est obligatoire, sauf si vous avez défini une valeur par défaut (à l'aide de gcloud config set deploy/region [REGION]). La région doit être la même pour le pipeline de livraison et toutes les cibles auxquelles il fait référence.

Créer le pipeline de livraison et les cibles à l'aide de Terraform

Vous pouvez également utiliser le fournisseur Terraform pour Google Cloud pour créer des ressources de pipeline de livraison et de cible.

Le fournisseur Terraform bêta de Google Cloud peut être compatible avec les fonctionnalités Cloud Deploy en version preview.

Modifier les pipelines et les cibles existants

Vous pouvez modifier ultérieurement n'importe quelle configuration de pipeline de livraison ou cible, puis exécuter gcloud deploy apply pour mettre à jour le pipeline ou la ressource cible. Toutefois, ces modifications n'affectent pas les versions existantes, car elles sont gérées par le pipeline de livraison d'origine.

Exiger une approbation manuelle pour un déploiement

Pour exiger une approbation manuelle pour une cible donnée, incluez la propriété suivante dans la définition de la cible:

requireApproval: true

La valeur par défaut est false. Si vous omettez cette propriété de la configuration du pipeline de livraison ou que vous ne lui fournissez aucune valeur, le déploiement sur cette cible ne nécessite pas d'approbation. Toutefois, l'appelant qui tente de promouvoir sur la cible a toujours besoin de l'autorisation IAM clouddeploy.rollouts.create.

Vous pouvez même exiger une approbation manuelle sur la première cible. Lorsqu'une version est créée à l'aide de la CLI, le rollout est créé automatiquement pour la première cible. Si une approbation est requise, Cloud Deploy crée la rollout, mais dans l'état "en attente de version" jusqu'à ce que l'approbation soit accordée.

Étapes suivantes