In diesem Dokument wird beschrieben, wie Sie einen benutzerdefinierten Cloud Deploy-Zieltyp erstellen und diesen benutzerdefinierten Zieltyp als Ziel in einer Cloud Deploy-Bereitstellungspipeline verwenden.
Im Folgenden wird der allgemeine Prozess zum Erstellen eines benutzerdefinierten Zieltyps und zum Verwenden dieses Typs in Ihrer Bereitstellungspipeline beschrieben:
Erstellen Sie eine containerisierte Anwendung oder Anwendungen, die die Funktionalität für die Bereitstellung auf Ihrem benutzerdefinierten Ziel enthalten und die Anforderungen von Cloud Deploy für benutzerdefinierte Zieltypen erfüllen.
Erstellen Sie eine
CustomTargetType-Definition mit tasks, die auf den Container verweisen und die Befehle angeben, die darin ausgeführt werden sollen.Definieren Sie ein neues Zielvorhaben mit einer
customTarget-Property, die den neuen benutzerdefinierten Zielvorhabentyp identifiziert.Verweisen Sie in Ihrer Bereitstellungspipeline auf dieses Ziel.
Jeder dieser Schritte wird im Rest dieses Dokuments ausführlich beschrieben.
Containeranwendungen erstellen
Die Funktionalität für die Bereitstellung für Ihr benutzerdefiniertes Ziel wird in containerisierten Anwendungen definiert, die Sie Cloud Deploy in Ihrer CustomTargetType-Definition zur Verfügung stellen. Wenn Ihre Bereitstellungspipeline ein Ziel mit einem benutzerdefinierten Zieltyp enthält, ruft Cloud Deploy die für diesen benutzerdefinierten Zieltyp definierten Container auf, um das von Ihnen definierte benutzerdefinierte Rendern und Bereitstellen auszuführen.
Das Verhalten Ihrer Anwendungen liegt in Ihrer Hand. Es muss jedoch die von Cloud Deploy bereitgestellten Umgebungsvariablen für die Eingabe verwenden und die erforderlichen Ausgaben zurückgeben.
In den meisten Fällen erstellen Sie für jeden benutzerdefinierten Zieltyp, den Sie erstellen, einen Container für das benutzerdefinierte Rendern und einen für die benutzerdefinierte Bereitstellung. Das benutzerdefinierte Rendern ist optional. Sie müssen es jedoch erstellen, es sei denn, Ihr benutzerdefiniertes Ziel funktioniert auch mit den integrierten Renderern.
Cloud Deploy verwendet standardmäßig skaffold render, um Ihre Manifeste zu rendern.
Benutzerdefinierten Zieltyp definieren
Sie definieren ein benutzerdefiniertes Zielvorhaben, indem Sie zuerst einen benutzerdefinierten Typ für das Zielvorhaben mit der CustomTargetType-Konfiguration erstellen.
Sie können die CustomTargetType in derselben Datei wie die Definition der Lieferpipeline oder mit Zieldefinitionen oder in einer separaten Datei erstellen.
Die CustomTargetType-Definition lautet so:
apiVersion: deploy.cloud.google.com/v1
kind: CustomTargetType
metadata:
name: [CUSTOM_TARGET_TYPE_NAME]
annotations:
labels:
description:
tasks:
render: [RENDER_TASK]
deploy: [DEPLOY_TASK]
Wo
CUSTOM_TARGET_TYPE_NAMEEin beliebiger Name, den Sie dieser benutzerdefinierten Zielgruppentypdefinition geben. Auf diesen Namen wird in der Zieldefinition für alle Ziele verwiesen, die den benutzerdefinierten Zieltyp verwenden, den Sie definieren.
RENDER_TASKIst die Aufgabe, die Ihr benutzerdefiniertes Rendering definiert. Wenn nicht angegeben, verwendet Cloud Deploy den integrierten Renderer, der in Ihrer Skaffold-Konfiguration angegeben ist.
DEPLOY_TASKIst die Aufgabe, die Ihren benutzerdefinierten Einsatz definiert.
Benutzerdefinierten Zieltyp registrieren
Nachdem Sie die CustomTargetType konfiguriert haben, führen Sie den Befehl gcloud deploy apply aus, um die CustomTargetType-Ressource in einem Google Cloud -Projekt zu registrieren:
gcloud deploy apply --file=[FILE] --project=[PROJECT] --region=[REGION]
Wobei:
FILE ist der Name der Datei, in der Sie diesen benutzerdefinierten Zieltyp definiert haben.
PROJECT ist das Google Cloud Projekt, in dem diese Ressource erstellt werden soll.
Die CustomTargetType muss sich im selben Projekt wie die Target-Ressource befinden, die darauf verweist. Sie müssen das Projekt nicht angeben, wenn Sie es als Standardprojekt für die Google Cloud CLI festgelegt haben.
REGION ist die Region (z. B. us-central1), in der diese Ressource erstellt werden soll. Die CustomTargetType muss sich in derselben Region wie die Target-Ressource befinden, die darauf verweist. Sie müssen die Region nicht angeben, wenn Sie sie als Standardregion für die gcloud CLI festgelegt haben.
Nachdem CustomTargetType als Cloud Deploy-Ressource erstellt wurde, können Sie sie jetzt in einer Target-Definition verwenden, um Ihr benutzerdefiniertes Ziel zu erstellen.
Weitere Informationen zur CustomTargetType-Definition finden Sie in der Referenz zum Cloud Deploy-Konfigurationsschema.
Ziel definieren
Der einzige Unterschied zwischen einer Zieldefinition für einen unterstützten Zieltyp und einer benutzerdefinierten Zieldefinition besteht darin, dass die benutzerdefinierte Zieldefinition einen customTarget-Abschnitt enthält. Die Syntax für ein customTarget lautet so:
customTarget:
customTargetType: [CUSTOM_TARGET_TYPE_NAME]
Dabei ist CUSTOM_TARGET_TYPE_NAME der Wert aus dem Attribut name, das in Ihrer Konfiguration für benutzerdefinierte Zieltypen definiert ist.
Ziel der Bereitstellungspipeline hinzufügen
Sie können ein benutzerdefiniertes Ziel in einer Bereitstellungspipeline genauso verwenden wie einen unterstützten Zieltyp. Das bedeutet, dass es keinen Unterschied im Fortschritt der Auslieferungspipeline zwischen Zielen eines unterstützten Zieltyps und benutzerdefinierten Zielen gibt.
Alle Ziele in einer Bereitstellungspipeline müssen denselben Zieltyp verwenden. Sie können beispielsweise keine Bereitstellungspipeline mit einigen Zielen haben, die in Google Kubernetes Engine bereitgestellt werden, und einigen benutzerdefinierten Zielen.
Wie bei unterstützten Zieltypen können Sie Bereitstellungsparameter in die Pipelinephase einfügen.
Release erstellen
Nachdem Sie Ihren benutzerdefinierten Zieltyp vollständig definiert und ein Ziel für die Verwendung dieses Typs erstellt haben, können Sie nun wie gewohnt einen Release erstellen:
gcloud deploy releases create [RELEASE_NAME] \
--project=[PROJECT_NAME] \
--region=[REGION] \
--delivery-pipeline=[PIPELINE_NAME]
Beim Erstellen des Release wird Ihr benutzerdefiniertes Rendering für jedes Ziel in Ihrer Bereitstellungspipeline ausgeführt. Dabei werden auch Bereitstellungsparameter verarbeitet, die für das Release, die Ziele oder die Bereitstellungspipeline konfiguriert sind. Cloud Deploy stellt die Bereitstellungsparameter als Eingabe für den benutzerdefinierten Render-Container bereit.
Ausgabe der benutzerdefinierten Ziele ansehen
Wenn Ihre benutzerdefinierte Rendering-Aufgabe die Anforderungen für benutzerdefinierte Ziele erfüllt, können Sie die gerenderten Artefakte in der Google Cloud console ansehen.
So rufen Sie die Ausgabe Ihres benutzerdefinierten Rendering-Vorgangs auf:
Rufen Sie in der Google Cloud Console die Cloud Deploy-Seite Bereitstellungspipelines auf, um Ihre Bereitstellungspipeline anzusehen.
Zur Seite der Lieferpipelines
Klicken Sie auf den Namen der Lieferpipeline.
In der Pipeline-Visualisierung wird der Bereitstellungsstatus der App angezeigt. Ihre Version wird auf dem Tab Releases unter Details zur Lieferpipeline aufgeführt.
Klicken Sie auf den Namen der Version.
Die Seite Release-Details wird angezeigt.
Klicken Sie auf den Tab Artefakte.
Klicken Sie unter Zielartefakte auf den Pfeil neben Artefakte ansehen.
Die gerenderten Artefakte werden aufgeführt, einschließlich der gerenderten Skaffold-Konfigurationsdatei und der gerenderten Manifestdatei, die vom benutzerdefinierten Renderer generiert wurde. Wenn Sie auf den Link Speicherort neben den Dateien klicken, gelangen Sie zum Cloud Storage-Bucket, in dem sich die Dateien befinden.
Sie können auch auf den Link Artefakte ansehen klicken, um diese Dateien mit dem Release-Inspector nach Release, Ziel oder Phase aufzurufen.
Nächste Schritte
Kurzanleitung: Benutzerdefinierten Zieltyp definieren und verwenden
Weitere Informationen zum Konfigurieren von Cloud Deploy-Zielen