Anmerkungen und Labels mit Cloud Deploy verwenden

Sie können Ihren 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 mit freiem Text. Sie können sie verwenden, willkürlich mit der Ressource verknüpfte Informationen.

Sie können Labels verwenden, um Ressourcen zu organisieren. Zum Beispiel können Sie logisch bei der Labelauswahl.

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

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

  • Schlüssel und Werte dürfen jeweils 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 Cloud Deploy API. .

Annotationen und Labels zu Cloud Deploy-Ressourcen hinzufügen

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

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 Zielen in der YAML-Konfiguration für Ziele Anmerkungen und Labels hinzu.

    Sie können beispielsweise einen Link zu weiteren Informationen über für das Monitoring Ihrer Anwendung. Wenn das Ziel jedoch gemeinsam genutzt wird, denken Sie daran, dass der Link für mehrere Anwendungen verwendet werden kann. anwendungsspezifisch.

  • 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.

    Sie können Anmerkungen verwenden, um einen Verweis auf eine Git-PR, oder SHA-Hash-Wert des Git-Commits mit den bereitzustellenden Änderungen. Weitere Informationen finden Sie unter Annotationen zur Nachverfolgung der Herkunft des Releases verwenden. .

  • Rollouts

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

    Sie können dem ersten Rollout Annotationen und Labels hinzufügen, indem Sie --initial-rollout-labels oder --initial-rollout-annotations auf der gcloud deploy releases create-Befehl.

    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 Anmerkungen und Labels für jede unterstützte Ressource anzeigen, indem Sie den mit dem Befehl describe der Ressource oder durch Aufrufen der Metadaten der Ressource in Google Cloud Console

Über die gcloud CLI

Wenn Sie die Anmerkungen und Labels einer Ressource über die Befehlszeile aufrufen möchten, verwenden Sie einen describe-Befehl für diese Ressource. Im folgenden Beispiel sehen Sie 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

So können Sie Annotationen und Labels für jede Cloud Deploy-Ressource ansehen, die über solche Metadaten verfügt, 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 sind die Details zu einer Veröffentlichung:

Releasedetails in der Google Cloud Console

Automatische Labels aus Cloud Deploy

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

  • app.kubernetes.io/managed-by:

    Ein Standardlabel, das Bereitstellungstools anzeigt. Diese Einstellung ist immer auf google-cloud-deploy, 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 Daten stammen aus der 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 Daten stammen aus der Release-Snapshot

Nutzungsbeispiel

Ein Beispiel für die Verwendung dieser automatisch angewendeten Labels wäre das Erstellen einer Grafik in Google Cloud Observability, in der ein Containermesswert von 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 es auch mit benutzerdefinierten Messwerten verwenden. Wenn PodMonitor beispielsweise mit einem Label konfiguriert, das app.kubernetes.io/managed-by: google-cloud-deploy entspricht. Sie können dann mithilfe einer Abfrage eine Grafik für benutzerdefinierte Metriken:

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 nicht zulassen, Compliance oder aus anderen Gründen. Um dies zu unterstützen, Der Organisationsrichtliniendienst bietet ein , die steuert, ob diese Labels angewendet werden.

Um zu verhindern, dass Cloud Deploy gerenderte Labels automatisch mit Labels hinzufügt Manifeste, Einschränkung des Organisationsrichtliniendienstes festlegen clouddeploy.disableServiceLabelGeneration wird erzwungen. 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.