Utilizzo di annotazioni ed etichette con Cloud Deploy

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:

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 comando gcloud 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 comando gcloud deploy releases promote.

    Puoi aggiungere annotazioni ed etichette alla prima implementazione specificando --initial-rollout-labels o --initial-rollout-annotations sul Comando gcloud 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.
di Gemini Advanced.

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:

Dettagli della pipeline di distribuzione nella console Google Cloud

Ecco i dettagli di una release:

Dettagli della release nella console Google Cloud

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.