Lieferpipeline verwalten

Auf dieser Seite wird beschrieben, wie Sie Ihre Lieferpipelines verwalten, einschließlich der folgenden Aufgaben:

  • Informationen zu Pipelines, Releases, Rollouts und Zielen ansehen
  • Benachrichtigungen mit Pipelines verwenden
  • Rollouts genehmigen und ablehnen

Hinweis

Auf dieser Seite wird davon ausgegangen, dass Sie bereits eine oder mehrere Lieferpipelines für Google Cloud Deploy verwenden oder diese einsatzbereit sind.

Da Google Cloud Deploy Skaffold zum Rendern und Bereitstellen von Manifesten verwendet, sollten Sie, falls Sie nicht mit Skaffold vertraut sind, die Grundlagen über die Skaffold-Kurzanleitung erlernen.

Lieferpipelines ansehen und bearbeiten

Sie können eine Liste all Ihrer Google Cloud Deploy-Lieferpipelines für alle Ihre Projekte aufrufen. Sie können sie über die Befehlszeile auflisten und in der Google Cloud Console aufrufen.

Liste der Lieferpipelines aufrufen

Console

Rufen Sie in der Cloud Console die Seite der Lieferpipelines von Google Cloud auf, um eine Liste der verfügbaren Lieferpipelines aufzurufen.

Zur Seite der Lieferpipelines

Die Liste der Lieferpipelines wird in der Cloud Console angezeigt.

Seite "Lieferpipelines" in der Google Cloud Console mit der Liste der Pipelines

Lieferpipelines, die konfiguriert, aber nicht beim Google Cloud-Bereitstellungsdienst registriert sind, werden nicht angezeigt.

gcloud

Der folgende Befehl gibt eine Liste aller Lieferpipelines im aktuellen Projekt zurück.

gcloud deploy delivery-pipelines list

Die Ausgabe sollte in etwa so aussehen:

$ gcloud deploy delivery-pipelines list --region=$REGION
---
createTime: '2021-05-03T16:03:11.687046682Z'
description: main application pipeline
etag: a9721c6cf665fcc7
name: projects/try-cd-dev6/locations/us-central1/deliveryPipelines/my-demo-app-1
serialPipeline:
  stages:
  - targetId: qsdev
  - targetId: qsprod
uid: f0b8148d5ddf4071964803e278acb1da
updateTime: '2021-05-03T16:03:12.780948171Z'

Wie in dieser Ausgabe gezeigt, gibt der Befehl nur eine Pipeline mit zwei Zielen zurück.

Details zur Lieferpipeline ansehen

Für eine vorhandene Lieferpipeline können Sie Pipelinedetails anzeigen lassen, einschließlich Pipeline-Metadaten und der Fortschritt der Ziele.

Console

  1. Rufen Sie in der Cloud Console die Google Cloud-Seite Lieferpipelines auf, um eine Liste der verfügbaren Lieferpipelines aufzurufen.

    Zur Seite der Lieferpipelines

    Die Liste der Lieferpipelines wird in der Cloud Console angezeigt.

    Liste der Lieferpipeline

    Lieferpipelines, die konfiguriert, aber nicht beim Google Cloud-Bereitstellungsdienst registriert sind, werden nicht angezeigt.

  2. Klicken Sie auf den Namen der Lieferpipeline, deren Details Sie aufrufen möchten.

Die Cloud Console zeigt eine Visualisierung der Lieferpipeline sowie Pipeline-Metadaten und -Status:

Detailseite der Lieferpipeline, mit Visualisierung der Pipeline

Sie können auf den Tab Ziele klicken, um Details zu den Zielen aufzurufen, die von dieser Lieferpipeline verwendet werden:

Detailseite der Lieferpipeline, mit Visualisierung der Pipeline

gcloud

Der folgende Befehl gibt Details der angegebenen Lieferpipelines zurück:

gcloud deploy delivery-pipelines describe <pipeline-name> --region=<region>

Die Ausgabe sollte in etwa so aussehen:

$ gcloud deploy delivery-pipelines describe my-demo-app-1 --region=us-central1
Delivery Pipeline:
  createTime: '2021-05-03T16:03:11.687046682Z'
  description: main application pipeline
  etag: a9721c6cf665fcc7
  name: projects/try-cd-dev6/locations/us-central1/deliveryPipelines/my-demo-app-1
  serialPipeline:
    stages:
    - targetId: qsdev
    - targetId: qsprod
  uid: f0b8148d5ddf4071964803e278acb1da
  updateTime: '2021-05-03T16:03:12.780948171Z'
Targets:
- Target: qsdev
- Target: qsprod

Wie in dieser Ausgabe gezeigt, gibt der Befehl die Details für die eine Pipeline zurück. Beachten Sie die beiden stages und die zwei entsprechenden Targets.

Deployment rückgängig machen

Wenn Sie ein Ziel zurücksetzen, erstellt Google Cloud Deploy eine neue rollout-Ressource basierend auf einem vorherigen Release.

gcloud

Standardmäßig verwendet das Rollback den letzten Release mit einem erfolgreichen Rollout für das angegebene Ziel. Sie können aber mit --release auch einen anderen Release auswählen.

Führen Sie zum Rollback folgenden Befehl aus dem Verzeichnis aus, das Ihre Lieferpipeline enthält:

gcloud deploy targets rollback TARGET_NAME \
   --delivery-pipeline=PIPELINE_NAME \
   --release=RELEASE_NAME \
   --rollout-id=ROLLOUT_ID

Im obigen Befehl sind --release und --rollout-id optional. Verwenden Sie --release, um einen Release zu identifizieren, zu dem ein Rollback durchgeführt werden soll. Wenn Sie diese Option weglassen, verwendet Google Cloud Deploy den letzten als funktionierend bekannten Release für das angegebene Ziel.

Verwenden Sie --rollout-id, um dem generierten rollout eine Kennzeichnung zuzuweisen. Wenn Sie diesen Wert weglassen, generiert Google Cloud Deploy eine ID für den generierten rollout.

Console

  1. Öffnen Sie die Seite der Lieferpipelines.

  2. Klicken Sie auf Ihre Pipeline, die in der Liste der Lieferpipelines angezeigt wird.

    Die Detailseite der Lieferpipeline zeigt eine grafische Darstellung des Fortschritts der Lieferpipeline.

  3. Klicken Sie auf das Menü "Mehr" Das Menü &quot;Mehr&quot; und wählen Sie Rollback ausführen aus.

    Wählen Sie im Menü die Option &quot;Rollback Release&quot; aus.

    Das Rollback-Formular wird angezeigt:

    Rollback-Formular

  4. Wählen Sie den Release im Feld Release aus.

    Dies ist der Release, zu dem Sie ein Rollback machen. Der Rollout-Name wird je nach dem ausgewählten Release ausgefüllt.

  5. Wenn Sie möchten, können Sie den Rollout-Namen und die Rollout-Beschreibung von der Standardeinstellung ändern.

  6. Klicken Sie auf Rollback.

    Aus dem ausgewählten Release wird ein neuer Rollout erstellt und im selben Ziel bereitgestellt.

Ein weiteres Rollback machen

Sie können ein manuelles Rollback auf einen früheren als den letzten erfolgreich bereitgestellte Release anfordern.

Führen Sie einfach gcloud deploy releases promote mit dem früheren Release aus und fügen Sie die --to-target-Option dazu, die auf das Ziel eingestellt ist, in dem Sie ein Rollback Ihres Releases machen möchten.

Benachrichtigungen mit Ihrer Lieferpipeline verwenden

Google Cloud Deploy verwendet Pub/Sub, um Benachrichtigungen für zwei Zwecke zu veröffentlichen:

  • Damit Sie Google Cloud Deploy in Tools von Drittanbietern und andere Google-Tools wie Tools für das Workflow-Ticketing oder die Testinfrastruktur einbinden können.

  • Um Google Cloud Deploy zusätzliche Geschäftslogik hinzuzufügen.

Weitere Informationen finden Sie unter Google Cloud Deploy-Benachrichtigungen abonnieren.

Genehmigungen für eine Lieferpipeline verwalten

Sie können Genehmigungen für beliebige Ziele erforderlich machen und Releases für diese Ziele genehmigen oder ablehnen.

Genehmigungen können programmatisch durch die Einbindung Ihres Workflow-Verwaltungssystems (z. B. ServiceNow) oder eines anderen Systems in Google Cloud Deploy mit Pub/Sub und der Google Cloud Deploy API verwaltet werden.

Genehmigung erforderlich

Wenn Sie eine Genehmigung für ein beliebiges Ziel benötigen, legen Sie in der Zielkonfiguration requireApproval auf true fest:

     apiVersion: deploy.cloud.google.com/v1
     kind: Target
     metadata:
      name:
     description:
     requireApproval: true

Weitere Informationen finden Sie unter Konfiguration der Pipeline für die Zustellung.

Wenn die Genehmigung eines Rollouts aussteht, erhalten Nutzer oder Systeme, die das Pub/Sub-Thema cd-approvals abonnieren, eine Benachrichtigung und können den Rollout dann genehmigen oder ablehnen.

Einführung genehmigen oder ablehnen

Jeder Nutzer oder jedes Dienstkonto mit der Rolle roles/clouddeploy.approver kann einen Rollout von Google Cloud Deploy für ein Ziel genehmigen, für das eine Genehmigung erforderlich ist.

Ihr integriertes Workflow-Verwaltungssystem kann, nachdem es eine Benachrichtigung über eine erforderliche Genehmigung per Dienstbenachrichtigung erhalten hat, kann den Rollout über die Google Cloud Deploy API genehmigen oder ablehnen.

Manuell genehmigen oder ablehnen

Console

  1. Rufen Sie in der Cloud Console die Google Cloud-Seite Lieferpipelines auf, um eine Liste der verfügbaren Lieferpipelines aufzurufen.

    Zur Seite der Lieferpipelines

    Die Liste der Lieferpipelines wird in der Cloud Console angezeigt. Lieferpipelines, die konfiguriert wurden, aber nicht beim Google Cloud-Bereitstellungsdienst registriert sind, werden nicht angezeigt.

  2. Klicken Sie auf den Namen der Lieferpipeline.

    Die Pipelinevisualisierung wird angezeigt. Wenn die Genehmigung aussteht und Sie die roles/clouddeploy.approver-Rolle oder entsprechende Berechtigungen haben, enthält die Visualisierung einen Prüfen-Link.

    Visualisierung der Lieferpipeline, Genehmigung ausstehend

  3. Klicken Sie auf Prüfen.

    Eine Liste der noch nicht genehmigten Rollouts wird angezeigt.

    Rollouts für diese Pipeline, ausstehende Genehmigung

  4. Klicken Sie auf Prüfen.

    Der Bildschirm "Rollout genehmigen" wird angezeigt.

    Details des Rollouts mit ausstehender Genehmigung

    Auf dem Tab Manifest-Diff werden alle Änderungen am gerenderten Manifest zwischen der aktuell bereitgestellten Version (falls vorhanden) und der Version, die Sie jetzt genehmigen oder ablehnen, angezeigt.

  5. Klicken Sie auf Genehmigen oder Ablehnen.

    Wenn Sie zustimmen, wird Ihre Anwendung im Ziel bereitgestellt. Wenn Sie die ablehnen, wird die Anwendung nicht bereitgestellt und kann später nur genehmigt werden, wenn sie noch einmal hochgestuft wird.

gcloud

Ein Nutzer mit der roles/clouddeploy.approver-Rolle kann Rollouts manuell genehmigen oder ablehnen. Zum Annehmen:

gcloud deploy rollouts approve rollout-name --delivery-pipeline=pipeline-name

Zum Ablehnen:

gcloud deploy rollouts reject rollout-name --delivery-pipeline=pipeline-name

Ändern einer bereits verwendeten Lieferpipeline

Zum Ändern einer Lieferpipeline bearbeiten Sie einfach die Definition der Lieferpipeline.

Möglicherweise erhalten Sie jedoch nicht die erwarteten Ergebnisse. Dies liegt an der Art, wie Google Cloud Deploy die Beziehung zwischen Pipelines und Zielen und den von diesen verwalteten Releases behandelt.

release- und rollout-Ressourcen sind dauerhaft der Pipeline zugeordnet, wie beim Erstellen von release definiert. Wenn Sie eine Lieferpipeline-Konfiguration ändern (einschließlich Zieldefinitionen), nachdem ein Release erstellt wurde, stimmt dieser Release nicht mehr mit den Definitionen überein.

Auf diese Weise erhalten bleiben Ressourcen über die Ziele hinweg in der Funktion konsistent und werden nicht durch Konfigurationsänderungen gestört. Dieses Verhalten entspricht jedoch möglicherweise nicht Ihren Vorstellungen. In diesem Fall können Sie einen neuen Release mit der aktualisierten Pipeline erstellen.

Google Cloud Deploy gibt Warnungen zurück, wenn eine solche Nichtübereinstimmung auftritt und Sie versuchen, bestimmte Aktionen auszulösen, darunter die Hochstufung.

Weitere Informationen finden Sie unter Pipelineinstanzen pro Release.

Lieferpipelines löschen

Wenn Sie eine Lieferpipeline ohne Unterressourcen (Releases oder Rollouts) haben, können Sie diese mit folgendem Befehl löschen:

gcloud deploy delivery-pipelines delete PIPELINE_NAME

Wenn der zu löschenden Pipeline Releases oder Rollouts zugeordnet sind, müssen Sie das --force-Flag einfügen, um die Pipeline und diese Unterressourcen zu löschen:

gcloud deploy delivery-pipelines delete PIPELINE_NAME --force

Nächste Schritte