Puoi collegare annotazioni ed etichette alle tue risorse Cloud Deploy. Non sono obbligatori.
Questo documento elenca le risorse a cui puoi collegare le etichette e annotazioni e descrive come puoi utilizzarle e dove visualizzarle.
Informazioni su annotazioni ed etichette
Le annotazioni sono coppie chiave-valore di testo in formato libero. Puoi utilizzarle per allegare arbitrarie associate alla risorsa.
Puoi utilizzare le etichette per organizzare le risorse. Ad esempio, puoi applicare una logica sulla selezione dell'etichetta.
Come per le annotazioni, le etichette sono coppie chiave/valore. Ma devono essere conformi alle seguenti:
Una risorsa Cloud Deploy non può avere più di 64 etichette.
Sia le chiavi che i valori devono avere una dimensione massima di 128 byte.
Le chiavi e i valori possono contenere solo lettere minuscole, caratteri numerici, trattini bassi e trattini.
Le chiavi devono iniziare con una lettera minuscola o un carattere internazionale.
Tutti i caratteri devono utilizzare la codifica UTF-8. Sono consentiti caratteri internazionali.
Il flag --labels
(ad esempio, su gcloud deploy releases
create
) può prendere un elenco di coppie chiave-valore:
"name=wrench,mass=1.3kg,count=3"
Consulta la documentazione dell'API Cloud Deploy per ulteriori dettagli.
Aggiunta di annotazioni ed etichette alle risorse Cloud Deploy
Puoi aggiungere annotazioni ed etichette al seguente Cloud Deploy di risorse:
Pipeline di distribuzione
Per le pipeline di distribuzione, aggiungi annotazioni ed etichette al file YAML di configurazione del deployment.
apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
name:
annotations:
key: "value"
labels:
key: "value"
description:
serialPipeline:
stages:
- targetId:
profiles: []
- targetId:
profiles: []
Destinazioni
Aggiungi annotazioni ed etichette ai target nella file YAML configurazione target.
Ad esempio, puoi includere un link a ulteriori informazioni sulle terze parti il monitoraggio della tua applicazione. Tuttavia, se il target è condiviso, ricorda che potrebbe essere utilizzato per più di una domanda, quindi il link non deve essere per applicazioni specifiche.
Release
Puoi aggiungere annotazioni, etichette o entrambe le annotazioni a una release utilizzando l'
--labels
e--annotations
sul comandogcloud deploy releases create
. Etichette. Inoltre, le annotazioni che aggiungi a una release non vengono trasferite come etichette o sulle implementazioni risultanti.Ad esempio, puoi usare le annotazioni per includere un riferimento a un PR Git, o l'hash SHA del commit Git contenente le modifiche di cui eseguire il deployment. Consulta la sezione Utilizzare le annotazioni per monitorare la provenienza della release per ulteriori dettagli.
Implementazioni
Puoi aggiungere annotazioni ed etichette a nuove implementazioni specificando
--labels
o--annotations
sul comandogcloud deploy releases promote
.Puoi aggiungere annotazioni ed etichette alla prima implementazione specificando
--initial-rollout-labels
o--initial-rollout-annotations
sul Comandogcloud deploy releases create
.Ecco alcune cose che puoi fare utilizzando le annotazioni durante l'implementazione:
- Crea un'annotazione contenente l'URL che rimanda ai risultati del test.
- Crea un'annotazione con un numero di ticket pertinente da un flusso di lavoro completamente gestito di Google.
Dove posso trovare le annotazioni di una risorsa?
Puoi visualizzare annotazioni ed etichette per qualsiasi risorsa supportata utilizzando
il comando describe
della risorsa oppure puoi visualizzarne i metadati in
nella console Google Cloud.
Da gcloud CLI
Per visualizzare le annotazioni e le etichette di una risorsa dalla riga di comando, utilizza un
describe
su quella risorsa. L'esempio seguente mostra i dettagli
per un target:
$ gcloud deploy targets describe qsprod --delivery-pipeline=my-demo-app-1 \
--region=us-central1 \
--project=quickstart-basic8
Il comando precedente restituisce il seguente output:
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'
Tieni presente che questo output include l'annotazione target_name
.
Nella console Google Cloud
Per visualizzare annotazioni ed etichette per qualsiasi risorsa Cloud Deploy che disponga di questi metadati, visualizza i dettagli della risorsa nella console Google Cloud.
Ad esempio, ecco i dettagli della pipeline di distribuzione per una pipeline che include un'annotazione:
Ecco i dettagli di una release:
Etichette automatiche da Cloud Deploy
Per impostazione predefinita, Cloud Deploy aggiunge le seguenti etichette al rendering manifests:
app.kubernetes.io/managed-by:
Un'etichetta standard per indicare gli strumenti di deployment. Il valore è sempre impostato su
google-cloud-deploy
per identificare l'origine del carico di lavoro.deploy.cloud.google.com/location:
Località della pipeline di distribuzione di cui è stato eseguito il deployment, ad esempio
us-central1
.deploy.cloud.google.com/project-id:
L'ID progetto della pipeline di distribuzione di cui è stato eseguito il deployment.
deploy.cloud.google.com/delivery-pipeline-id:
L'ID risorsa della pipeline di distribuzione utilizzata. Questo dato viene ripreso release snapshot.
deploy.cloud.google.com/release-id:
L'ID risorsa della release di cui è stato eseguito il deployment.
deploy.cloud.google.com/target-id:
L'ID risorsa della destinazione del deployment. Questo dato viene ripreso release snapshot.
Esempio di utilizzo
Un esempio di utilizzo di queste etichette applicate automaticamente è la creazione di una in Google Cloud Observability che aggrega una metrica container in base alle proprietà di Cloud Deploy:
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
Puoi utilizzarlo anche con le metriche personalizzate. Ad esempio, se PodMonitor
configurate con un'etichetta che corrisponda a app.kubernetes.io/managed-by:
google-cloud-deploy
. Puoi quindi utilizzare una query per definire un grafico per
metriche:
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
Disattivazione delle etichette automatiche
La tua organizzazione potrebbe non consentire queste etichette automatiche per scopi normativi, conformità o per altri motivi. A supporto di ciò, Il Servizio Criteri dell'organizzazione offre un'offerta un vincolo che determina se queste etichette vengono applicate o meno.
per impedire a Cloud Deploy di aggiungere automaticamente etichette al rendering
, imposta il vincolo del Servizio criteri dell'organizzazione
clouddeploy.disableServiceLabelGeneration
da applicare. Applicazione forzata di questo
non ti impedisce di specificare manualmente le etichette, né
rimuovere le etichette dalle release esistenti.
Consulta Utilizzare i vincoli booleani nei criteri dell'organizzazione per ulteriori informazioni sull'abilitazione dei vincoli.