Sie können Ihren Cloud Deploy-Ressourcen Anmerkungen 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
Hinweise sind Schlüssel/Wert-Paare aus Text im freien Format. Sie können damit beliebige Informationen an die Ressource anhängen.
Sie können Labels verwenden, um Ressourcen zu organisieren. Sie können beispielsweise Logik basierend auf der Labelauswahl anwenden.
Wie Anmerkungen sind Labels Schlüssel/Wert-Paare. Sie müssen jedoch die folgenden Einschränkungen erfüllen:
Eine Cloud Deploy-Ressource kann maximal 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 Cloud Deploy API-Dokumentation.
Cloud Deploy-Ressourcen Anmerkungen und Labels hinzufügen
Sie können folgenden Cloud Deploy-Ressourcen Anmerkungen 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-Konfiguration für Ziele Anmerkungen und Labels hinzu.
Sie können beispielsweise einen Link zu weiteren Informationen zur Überwachung durch Drittanbieter für Ihre App einfügen. Wenn das Ziel jedoch freigegeben ist, denken Sie daran, dass es für mehrere Anwendungen verwendet werden kann. Der Link sollte also 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 einen Verweis auf einen Git-PR, den Autor oder den SHA-Hash des Git-Commits mit den zu implementierenden Änderungen hinzufügen. Weitere Informationen finden Sie unter Herkunft mithilfe von Anmerkungen verfolgen.
Rollouts
Um neuen Rollouts Annotationen und Labels hinzufügen, geben Sie
--labels
oder--annotations
imgcloud deploy releases promote
-Befehl an.Sie können dem ersten Roll-out Anmerkungen und Labels hinzufügen, indem Sie
--initial-rollout-labels
oder--initial-rollout-annotations
im Befehlgcloud deploy releases create
angeben.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 mit dem describe
-Befehl der Ressource oder durch Aufrufen der Metadaten der Ressource in der Google Cloud Console anzeigen.
Ü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. 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
In der Google Cloud Console können Sie die Details einer Ressource aufrufen, um Annotationen und Labels von Cloud Deploy-Ressourcen mit solchen Metadaten anzuzeigen.
Im Folgenden finden Sie beispielsweise die Informationen der Lieferpipeline für eine Pipeline, die eine Annotation enthält:
Hier sind die Details für eine Veröffentlichung:
Automatische Labels aus Cloud Deploy
Cloud Deploy fügt gerenderten Manifesten standardmäßig folgende Labels hinzu:
app.kubernetes.io/managed-by:
Ein Standardlabel für Bereitstellungstools. Dieser Wert ist immer auf
google-cloud-deploy
festgelegt, um den Ursprung der Arbeitslast anzugeben.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 der bereitgestellten Version.
deploy.cloud.google.com/target-id:
Die Ressourcen-ID des Bereitstellungsziels. Diese Angabe stammt aus dem 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 diese Funktion auch mit benutzerdefinierten Messwerten verwenden. Beispiel: PodMonitor ist mit einem Label konfiguriert, das mit app.kubernetes.io/managed-by:
google-cloud-deploy
übereinstimmt. Anschließend können Sie 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 rechtlichen, Compliance- oder anderen Gründen deaktivieren. Dazu bietet der Dienst für Organisationsrichtlinien eine Einschränkung, mit der gesteuert wird, ob diese Labels angewendet werden.
Wenn Sie verhindern möchten, dass 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.