Documentation de référence du schéma de configuration

Le ou les fichiers de configuration Cloud Deploy définissent le pipeline de diffusion, les cibles vers lesquelles effectuer le déploiement et la progression de ces cibles.

Le fichier de configuration du pipeline de livraison peut inclure des définitions de cibles, ou celles-ci peuvent se trouver dans un ou plusieurs fichiers distincts. Par convention, un fichier contenant à la fois la configuration du pipeline de déploiement et les configurations cibles est appelé clouddeploy.yaml, et une configuration de pipeline sans cibles est appelée delivery-pipeline.yaml. Toutefois, vous pouvez leur donner le nom de votre choix. D'autres définitions de ressources, telles que les automations et les deploy policies, peuvent également figurer dans le même fichier qu'une définition de pipeline de livraison ou de cible.

Configuration matérielle

Cloud Deploy utilise deux principaux fichiers de configuration :

Il peut s'agir de fichiers distincts, ou le pipeline de livraison et les cibles peuvent être configurés dans le même fichier.

Structure d'un fichier de configuration de pipeline de livraison

Vous trouverez ci-dessous la structure d'une configuration de pipeline de livraison, y compris les propriétés des définitions cibles. Certaines propriétés cibles ne sont pas incluses ici. Consultez Définitions des cibles pour connaître toutes les propriétés de configuration des cibles.

# Delivery pipeline config
apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
 name:
 annotations:
 labels:
description:
suspended:
serialPipeline:
 stages:
 - targetId:
   profiles: []
# Deployment strategies
# One of:
#   standard:
#   canary:
# See the strategy section in this document for details.
   strategy:
     standard:
       predeploy:
         tasks: []
       verify:
         tasks: []
       analysis:
       postdeploy:
         tasks: []
   deployParameters:
   - values:
     matchTargetLabels:
 - targetId:
   profiles: []
   strategy:
   deployParameters:
---

# Target config
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name:
 annotations:
 labels:
description:
multiTarget:
 targetIds: []
deployParameters:
requireApproval:
#
# Runtimes
# one of the following runtimes:
gke:
 cluster:
 dnsEndpoint:
 internalIp:
 proxyUrl:
#
# or:
anthosCluster:
 membership:
#
# or:
run:
 location:
#
# or:
customTarget:
  customTargetType:
#
# (End runtimes. See documentation in this article for more details.)
#
executionConfigs:
- usages:
  - [RENDER | PREDEPLOY | DEPLOY | VERIFY | POSTDEPLOY | ANALYSIS]
  workerPool:
  serviceAccount:
  artifactStorage:
  executionTimeout:
  verbose:
---

# Custom target type config
apiVersion: deploy.cloud.google.com/v1
kind: CustomTargetType
metadata:
  name:
  annotations:
  labels:
description:
tasks:
  render:
  deploy:
---

# Automation config
apiVersion: deploy.cloud.google.com/v1
kind: Automation
metadata:
  name:
  labels:
  annotations:
description:
suspended:
serviceAccount:
selector:
  targets:
    -  id: [TARGET_ID]
       labels:
         [LABEL_KEY]:[LABEL_VALUE]
rules:
- [RULE_TYPE]:
  id:
  [RULE-SPECIFIC_CONFIG]

Ce fichier YAML comporte trois composants principaux :

  • Pipeline de livraison principal et progression

    Le fichier de configuration peut inclure un nombre illimité de définitions de pipeline.

  • Définitions des cibles

    Par souci de simplicité, un seul groupe cible est présenté dans cet exemple, mais il peut y en avoir autant que vous le souhaitez. Les cibles peuvent également être définies dans un ou plusieurs fichiers distincts.

  • Définitions des types de cibles personnalisées

    Les cibles personnalisées nécessitent une définition de type de cible personnalisée. Comme pour les cibles et les automatisations, les types de cibles personnalisés peuvent être définis dans le même fichier que le pipeline de diffusion ou dans un fichier distinct.

  • Définitions de l'automatisation

    Vous pouvez créer des automatisations de déploiement dans le même fichier que votre pipeline de diffusion et vos cibles, ou dans un ou plusieurs fichiers distincts. Pour plus de simplicité, un seul Automation est affiché ici, mais vous pouvez en créer autant que vous le souhaitez.

Ces composants sont définis dans le reste de ce document.

Définition et progression du pipeline

En plus des métadonnées du pipeline, telles que name, la définition du pipeline principal inclut une liste de références aux cibles dans l'ordre de la séquence de déploiement. En d'autres termes, la première cible listée est la première cible de déploiement. Une fois le déploiement effectué sur cette cible, la promotion de la version permet de la déployer sur la cible suivante de la liste.

Vous trouverez ci-dessous les propriétés de configuration d'un pipeline de diffusion, à l'exclusion des définitions de cibles.

metadata.name

Le champ name accepte une chaîne qui doit être unique par projet et par emplacement.

metadata.annotations et metadata.labels

La configuration du pipeline de livraison peut inclure des annotations et des libellés. Les annotations et les libellés sont stockés avec la ressource de pipeline de diffusion une fois le pipeline enregistré.

Pour en savoir plus, consultez Utiliser des libellés et des annotations avec Cloud Deploy.

description

Chaîne arbitraire décrivant ce pipeline de livraison. Cette description s'affiche dans les détails du pipeline de livraison dans la console Google Cloud .

suspended

Valeur booléenne qui, si elle est définie sur true, suspend le pipeline de déploiement de sorte qu'il ne peut pas être utilisé pour créer, promouvoir, annuler ou redéployer des versions. De plus, si le pipeline de livraison est suspendu, vous ne pouvez pas approuver ni refuser un déploiement créé à partir de ce pipeline.

La valeur par défaut est false.

serialPipeline

Début de la définition d'un pipeline de diffusion à progression séquentielle. Cette strophe est obligatoire.