Anmerkungen und Labels mit Google Cloud Deploy verwenden

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Sie können Ihren Google Cloud Deploy-Ressourcen Annotationen und Labels hinzufügen. Diese sind nicht erforderlich.

In diesem Dokument werden Ressourcen aufgeführt, an die Sie Labels und Annotationen anhängen können. Außerdem wird beschrieben, wie Sie diese verwenden und wo Sie sie ansehen können.

Über Annotationen und Labels

Anmerkungen sind Schlüssel/Wert-Paare im freien Text. Sie können damit beliebige Informationen zur Ressource hinzufügen.

Mithilfe von Labels können Sie Ressourcen organisieren. Sie können beispielsweise eine Logik auf Grundlage der Labelauswahl anwenden.

Wie bei Annotationen sind Labels Schlüssel/Wert-Paare. Sie müssen jedoch den folgenden Einschränkungen entsprechen:

  • Eine Google Cloud Deploy-Ressource darf nicht mehr als 64 Labels haben.

  • Schlüssel und Werte dürfen maximal 128 Byte groß sein.

  • Schlüssel und Werte dürfen nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.

  • Schlüssel müssen mit einem Kleinbuchstaben oder einem internationalen Zeichen beginnen.

  • Alle Zeichen müssen die UTF-8-Codierung verwenden. Internationale Zeichen sind erlaubt.

Das --labels-Flag (z. B. gcloud deploy releases create) kann eine Liste von Schlüssel/Wert-Paaren enthalten:

"name=wrench,mass=1.3kg,count=3"

Weitere Informationen finden Sie in der Dokumentation zur Google Cloud Deploy API.

Annotationen und Labels zu Google Cloud Deploy-Ressourcen hinzufügen

Sie können folgenden Google Cloud Deploy-Ressourcen Annotationen und Labels hinzufügen:

apiVersion: deploy.cloud.google.com/v1
  kind: DeliveryPipeline
  metadata:
   name:
   annotations:
     key: "value"
   labels:
     key: "value"
  description:
  serialPipeline:
   stages:
   - targetId:
     profiles: []
   - targetId:
     profiles: []
  • Ziele

    Fügen Sie den Zielen in der YAML-Datei für die Zielkonfiguration Anmerkungen und Labels hinzu.

    Sie können beispielsweise einen Link zu weiteren Informationen zum Drittanbieter-Monitoring für Ihre Anwendung hinzufügen. Wenn das Ziel jedoch gemeinsam genutzt wird, kann es für mehr als eine Anwendung verwendet werden. Der Link sollte also nicht anwendungsspezifisch sein.

  • Releases

    Mit den Flags --labels und --annotations im gcloud deploy releases create-Befehl können Sie einem Release Annotationen oder Labels oder beides hinzufügen. Labels und Annotationen, die Sie einem Release hinzufügen, werden nicht als Labels oder Annotationen für resultierende Rollouts übernommen.

    Mit Annotationen können Sie beispielsweise einen Verweis auf ein Git-PR, einen Autor oder einen SHA-Hash des Git-Commits mit den bereitzustellenden Änderungen einfügen. Weitere Informationen finden Sie unter Annotationen verwenden, um die Herkunft der Veröffentlichung zu verfolgen.

  • Rollouts

    Um neuen Rollouts Annotationen und Labels hinzufügen, geben Sie --labels oder --annotations im gcloud deploy releases promote-Befehl an.

    Die einzige Möglichkeit, Annotationen und Labels zum ersten Rollout hinzuzufügen, besteht darin, ein Rollout mit der Cloud Deploy API zu erstellen und dabei Annotationen oder Labels in die rollout-Ressource einzufügen.

    Annotationen bei Rollouts bieten folgende Möglichkeiten:

    • Erstellen Sie eine Annotation mit der URL, die auf die Testergebnisse verweist.
    • Erstellen Sie eine Annotation mit einer relevanten Ticketnummer aus einem Workflow-Verwaltungssystem.

Wo finde ich die Annotationen einer Ressource?

Sie können Annotationen und Labels für jede unterstützte Ressource anzeigen lassen. Verwenden Sie dazu den Befehl describe der Ressource oder die Metadaten der Ressource in der Google Cloud Console.

Über die gcloud CLI

Verwenden Sie einen describe-Befehl für diese Ressource, um sich die Annotationen und Labels einer Ressource über die Befehlszeile anzusehen. Das folgende Beispiel zeigt die Details für ein Ziel:

 $ gcloud deploy targets describe qsprod --delivery-pipeline=my-demo-app-1 \
                                              --region=us-central1 \
                                              --project=quickstart-basic8

Der obige Befehl liefert die folgende Ausgabe:

 Target:
   annotations:
     approver_ticket_queue_url: https://workflows.example.com/deploy_approvals/4985729
   createTime: '2021-10-28T19:33:56.907887878Z'
   description: development cluster
   etag: 5b3bbee48f693cd7
   gke:
     cluster: projects/quickstart-basic8/locations/us-central1/clusters/quickstart-cluster-qsdev
   name: projects/quickstart-basic8/locations/us-central1/targets/qsdev
   uid: 3f3a5f8e7e0648e3bb17898ee531455d
   updateTime: '2021-11-10T16:55:11.502660604Z'

Beachten Sie, dass diese Ausgabe die target_name-Annotation enthält.

In der Google Cloud Console

Wenn Sie Anmerkungen und Labels für jede Google Cloud Deploy-Ressource mit solchen Metadaten ansehen möchten, rufen Sie die Details dieser Ressource in der Google Cloud Console auf.

Im Folgenden finden Sie beispielsweise die Informationen der Lieferpipeline für eine Pipeline, die eine Annotation enthält:

Details zur Bereitstellungspipeline in der Google Cloud Console

Hier die Details zu einem Release:

Releasedetails in der Google Cloud Console

Automatische Labels aus Google Cloud Deploy

Google Cloud Deploy fügt gerenderten Manifesten standardmäßig folgende Labels hinzu:

  • app.kubernetes.io/managed-by:

    Ein Standardlabel für Tools zur Bereitstellung. Dieser ist immer auf google-cloud-deploy gesetzt, um den Ursprung der Arbeitslast zu identifizieren.

  • deploy.cloud.google.com/location:

    Der Speicherort der bereitgestellten Lieferpipeline, z. B. us-central1.

  • deploy.cloud.google.com/project-id:

    Die Projekt-ID der bereitgestellten Lieferpipeline.

  • deploy.cloud.google.com/delivery-pipeline-id:

    Die Ressourcen-ID der verwendeten Bereitstellungspipeline. Diese stammt aus dem Release-Snapshot.

  • deploy.cloud.google.com/release-id:

    Die Ressourcen-ID des bereitgestellten Release.

  • deploy.cloud.google.com/target-id:

    Die Ressourcen-ID des Bereitstellungsziels. Diese stammt aus dem Release-Snapshot.

Nutzungsbeispiel

Ein Beispiel für die Verwendung dieser automatisch angewendeten Labels wäre das Erstellen einer Grafik in der Google Cloud-Operations Suite, in der ein Containermesswert von Google Cloud Deploy-Attributen aggregiert wird.

fetch k8s_container
| metric 'kubernetes.io/container/cpu/core_usage_time'
| filter metadata.user.c'app.kubernetes.io/managed-by' = "google-cloud-deploy"
| group_by [
    pipeline: metadata.user.c'deploy.cloud.google.com/delivery-pipeline-id',
    target: metadata.user.c'deploy.cloud.google.com/target-id',
    release: metadata.user.c'deploy.cloud.google.com/release-id',],
      sum(val())
| rate 1m

Sie können diese Option auch mit benutzerdefinierten Messwerten verwenden. Beispiel: PodMonitor ist mit einem Label konfiguriert, das mit app.kubernetes.io/managed-by: google-cloud-deploy übereinstimmt. Sie können dann mit einer Abfrage ein Diagramm für benutzerdefinierte Messwerte definieren:

fetch k8s_container
| metric workload.googleapis.com/example_requests_total
| filter metadata.user_labels.c'app.kubernetes.io/managed-by' = "google-cloud-deploy"
| group_by [
    pipeline: metadata.user.c'deploy.cloud.google.com/delivery-pipeline-id',
    target: metadata.user.c'deploy.cloud.google.com/target-id',
    release: metadata.user.c'deploy.cloud.google.com/release-id',],
    sum(val())
| rate 1m

Automatische Labels deaktivieren

Ihre Organisation kann diese automatischen Labels aus gesetzlichen, Compliance- oder anderen Gründen ablehnen. Zu diesem Zweck bietet der Organisationsrichtliniendienst eine Einschränkung, die steuert, ob diese Labels angewendet werden.

Wenn Sie verhindern möchten, dass Google Cloud Deploy gerenderten Manifesten automatisch Labels hinzufügt, legen Sie die Einschränkung clouddeploy.disableServiceLabelGeneration des Organisationsrichtliniendiensts fest. Wenn Sie diese Einschränkung erzwingen, können Sie Labels nicht manuell angeben und auch nicht aus vorhandenen Releases entfernen.

Weitere Informationen zum Aktivieren von Einschränkungen finden Sie unter Boolesche Einschränkungen in Organisationsrichtlinien verwenden.