Sie können Annotationen und Labels an Ihre Cloud Deploy-Ressourcen anhängen. 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
Annotationen sind Schlüssel/Wert-Paare aus freiem Text. Damit können Sie beliebige Informationen anhängen, die mit der Ressource verknüpft sind.
Mit Labels können Sie Ressourcen organisieren. Sie können beispielsweise eine Logik anwenden, die auf der Labelauswahl basiert.
Wie Anmerkungen sind Labels Schlüssel/Wert-Paare. Für sie gelten jedoch die folgenden Einschränkungen:
Eine Cloud Deploy-Ressource kann nicht mehr als 64 Labels haben.
Sowohl Schlüssel als auch 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 Cloud Deploy API.
Anmerkungen und Labels zu Cloud Deploy-Ressourcen hinzufügen
Sie können den folgenden Cloud Deploy-Ressourcen Annotationen und Labels hinzufügen:
Bereitstellungspipelines
Für Lieferpipeline fügen Sie der YAML-Konfigurationsdatei Annotationen und Labels hinzu.
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-Datei für die Zielkonfiguration Annotationen 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 freigegeben ist, denken Sie daran, dass es für mehr als eine Anwendung verwendet werden kann. Der Link sollte daher nicht anwendungsspezifisch sein.
Releases
Mit den Flags
--labels
und--annotations
imgcloud 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 beispielsweise mithilfe von Annotationen einen Verweis auf einen Git-PR, einen Autor oder einen SHA-Hash-Wert des Git-Commits einfügen, der die bereitzustellenden Änderungen enthält. Weitere Informationen finden Sie unter Mit Annotationen die Herkunft des Release verfolgen.
Rollouts
Um neuen Rollouts Annotationen und Labels hinzufügen, geben Sie
--labels
oder--annotations
imgcloud 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 mit dem Befehl describe
der Ressource oder durch Aufrufen der Metadaten der Ressource in der Google Cloud Console aufrufen.
Über die gcloud CLI
Wenn Sie die Annotationen und Labels einer Ressource über die Befehlszeile ansehen möchten, verwenden Sie den Befehl describe
für diese Ressource. 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 Annotationen und Labels für eine Cloud Deploy-Ressource mit solchen Metadaten ansehen möchten, rufen Sie die Details der 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:
Und hier sind die Details zu einer Version:
Automatische Labels von Cloud Deploy
Standardmäßig fügt Cloud Deploy den gerenderten Manifesten die folgenden Labels hinzu:
app.kubernetes.io/managed-by:
Ein Standardlabel, das Bereitstellungstools angibt. 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 Informationen stammen 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 Informationen stammen aus dem Release-Snapshot.
Nutzungsbeispiel
Ein Beispiel für die Verwendung dieser automatisch angewendeten Labels wäre, ein Diagramm innerhalb der Google Cloud-Beobachtbarkeit zu erstellen, in dem ein Containermesswert nach 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 sie auch mit benutzerdefinierten Messwerten verwenden. Beispiel: PodMonitor ist mit einem Label konfiguriert, das app.kubernetes.io/managed-by:
google-cloud-deploy
entspricht. Sie können dann eine Abfrage verwenden, um ein Diagramm für benutzerdefinierte Messwerte zu 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 aufgrund von Vorschriften, Compliance oder aus anderen Gründen nicht zulassen. Zu diesem Zweck bietet der Organisationsrichtliniendienst eine Einschränkung, die steuert, ob diese Labels angewendet werden.
Wenn Sie verhindern möchten, dass Cloud Deploy gerenderten Manifesten automatisch Labels hinzufügt, legen Sie fest, dass die Einschränkung clouddeploy.disableServiceLabelGeneration
des Organisationsrichtliniendienstes erzwungen wird. 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.