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:
- Definition der Bereitstellungspipeline
- Zieldefinition
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
Automationgezeigt, 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