Referenz zum Konfigurationsschema

Die Cloud Deploy-Konfigurationsdatei bzw. -dateien definieren die Lieferpipeline, die Ziele der Bereitstellung und den Fortschritt in der Sequenz dieser Ziele.

Die Konfigurationsdatei der Lieferpipeline kann Zieldefinitionen enthalten. Alternativ können diese in einer separaten Datei oder in separaten Dateien enthalten sein. Konventionsgemäß heißt eine Datei, die sowohl die Pipeline-Konfiguration der Zustellung als auch die Zielkonfigurationen enthält, clouddeploy.yaml; eine Pipeline-Konfiguration ohne Ziele heißt delivery-pipeline.yaml. Sie können diesen Dateien jedoch einen beliebigen Namen geben. Andere Ressourcendefinitionen wie Automatisierungen und Bereitstellungsrichtlinien können sich auch in derselben Datei wie eine Lieferpipeline oder Zieldefinition befinden.

Aufbau

Cloud Deploy verwendet zwei Hauptkonfigurationsdateien:

Dabei kann es sich um separate Dateien handeln oder die Lieferpipeline und die Ziele können in derselben Datei konfiguriert werden.

Struktur einer Konfigurationsdatei für eine Lieferpipeline.

Im Folgenden finden Sie die Struktur einer Lieferpipeline-Konfiguration, einschließlich der Eigenschaften für Zieldefinitionen. Einige Ziel-Properties sind hier nicht enthalten. Informationen zu allen Eigenschaften der Zielkonfiguration finden Sie unter Zieldefinitionen.

# 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]

Dieses YAML hat drei Hauptkomponenten:

  • Hauptlieferpipeline und Fortschritt

    Die Konfigurationsdatei kann eine beliebige Anzahl an Pipelinedefinitionen enthalten.

  • Die Zieldefinitionen

    Der Einfachheit halber ist in diesem Beispiel nur ein Ziel zu sehen, es können aber beliebig viele sein. Ziele können auch in einer oder mehreren separaten Dateien definiert werden.

  • Definitionen benutzerdefinierter Zieltypen

    Für benutzerdefinierte Ziele ist eine Definition des benutzerdefinierten Zieltyps erforderlich. Wie bei Zielen und Automatisierungen können benutzerdefinierte Zieltypen in derselben Datei wie die Lieferpipeline oder in einer separaten Datei definiert werden.

  • Automatisierungsdefinitionen

    Sie können Bereitstellungsautomatisierungen in derselben Datei wie Ihre Lieferpipeline und Ziele oder in einer separaten Datei bzw. Dateien erstellen. Zur Vereinfachung wird hier nur ein Automation gezeigt, Sie können aber beliebig viele erstellen.

Diese Komponenten werden im Rest dieses Dokuments definiert.

Pipelinedefinition und -fortschritt

Zusätzlich zu den Pipeline-Metadaten, z. B. name, enthält die Hauptpipelinedefinition eine Liste von Verweisen auf Ziele in der Reihenfolge der Bereitstellung. Das erste aufgeführte Ziel ist das erste Bereitstellungsziel. Nachdem Sie die Bereitstellung für dieses Ziel ausgeführt haben, wird der Release durch das Hochstufen für das nächste Ziel in der Liste bereitgestellt.

Im Folgenden finden Sie die Konfigurationseigenschaften für eine Lieferpipeline, ohne Zieldefinitionen.

metadata.name

Das name-Feld verwendet einen String, der pro Projekt und Standort einmalig sein muss.

metadata.annotations und metadata.labels

Die Konfiguration der Lieferpipeline kann Annotationen und Labels enthalten. Annotationen und Labels werden mit der Ressource der Lieferpipeline gespeichert, nachdem die Pipeline registriert wurde.

Weitere Informationen finden Sie unter Labels und Annotationen mit Cloud Deploy verwenden.

description

Beliebiger String, der diese Lieferpipeline beschreibt. Diese Beschreibung wird in den Details der Lieferpipeline in der Google Cloud -Konsole angezeigt.

suspended

Ein boolescher Wert, der bei true