Puedes adjuntar anotaciones y etiquetas a tus recursos de Cloud Deploy. No son obligatorios.
En este documento, se enumeran los recursos a los que puedes adjuntar etiquetas y anotaciones, y se describe cómo puedes usarlas y dónde puedes verlas.
Acerca de las anotaciones y las etiquetas
Las anotaciones son pares clave-valor de texto de formato libre. Puedes usarlos para adjuntar información arbitraria asociada al recurso.
Puedes usar etiquetas para organizar los recursos. Por ejemplo, puedes aplicar lógica según la selección de etiquetas.
Al igual que las anotaciones, las etiquetas son pares clave-valor. Sin embargo, deben cumplir con las siguientes limitaciones:
Un recurso de Cloud Deploy no puede tener más de 64 etiquetas.
Las claves y los valores deben tener 128 bytes o menos.
Las claves y los valores pueden contener solo letras en minúscula, números, guiones bajos y guiones.
Las claves deben comenzar con una letra en minúscula o un carácter internacional.
Todos los caracteres deben usar la codificación UTF-8, además, se permiten los caracteres internacionales.
La marca --labels (por ejemplo, en gcloud deploy releases
create) puede tomar una lista de pares clave-valor:
"name=wrench,mass=1.3kg,count=3"
Consulta la documentación de la API de Cloud Deploy para obtener más detalles.
Agrega anotaciones y etiquetas a los recursos de Cloud Deploy
Puedes agregar anotaciones y etiquetas a los siguientes recursos de Cloud Deploy:
Canalizaciones de entrega
En el caso de las canalizaciones de entrega, debes agregar anotaciones y etiquetas al archivo de configuración YAML.
apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
name:
annotations:
key: "value"
labels:
key: "value"
description:
serialPipeline:
stages:
- targetId:
profiles: []
- targetId:
profiles: []
Destinos
Agrega anotaciones y etiquetas a los destinos en la configuración de YAML del destino.
Por ejemplo, puedes incluir un vínculo a más información sobre la supervisión de terceros para tu aplicación. Sin embargo, si el destino es compartido, recuerda que se podría usar para más de una aplicación, por lo que el vínculo no debe ser específico de la aplicación.
Versiones
Puedes agregar anotaciones o etiquetas, o ambas, a una versión con las marcas
--labelsy--annotationsen el comandogcloud deploy releases create. Las etiquetas y las anotaciones que agregas a un lanzamiento no se transfieren como etiquetas o anotaciones en los lanzamientos resultantes.Por ejemplo, puedes usar anotaciones para incluir una referencia a una solicitud de extracción de Git, un autor o un hash SHA de la confirmación de Git que contiene los cambios que se implementarán. Consulta Cómo usar anotaciones para hacer un seguimiento de la procedencia de la versión para obtener más detalles.
Lanzamientos
Puedes agregar anotaciones y etiquetas a los nuevos lanzamientos especificando
--labelso--annotationsen el comandogcloud deploy releases promote.Puedes agregar anotaciones y etiquetas al primer lanzamiento especificando
--initial-rollout-labelso--initial-rollout-annotationsen el comandogcloud deploy releases create.Estas son algunas acciones que puedes realizar con las anotaciones en un lanzamiento:
- Crea una anotación que contenga la URL que apunta a los resultados de la prueba.
- Crea una anotación con un número de ticket pertinente de un sistema de administración de flujos de trabajo.
¿Dónde puedo encontrar las anotaciones de un recurso?
Puedes ver las anotaciones y etiquetas de cualquier recurso compatible con el comando describe del recurso o viendo los metadatos del recurso en la consola deGoogle Cloud .
Desde gcloud CLI
Para ver las anotaciones y las etiquetas de un recurso desde la línea de comandos, usa un comando describe en ese recurso. En el siguiente ejemplo, se muestran los detalles de un destino:
$ gcloud deploy targets describe qsprod --delivery-pipeline=my-demo-app-1 \
--region=us-central1 \
--project=quickstart-basic8
El comando anterior muestra el siguiente resultado:
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'
Observa que este resultado incluye la anotación target_name.
En la consola de Google Cloud
Para ver las anotaciones y etiquetas de cualquier recurso de Cloud Deploy que tenga esos metadatos, consulta los detalles del recurso en la consola de Google Cloud .
Por ejemplo, a continuación, se muestran los detalles de la canalización de entrega para una canalización que incluye una anotación:

A continuación, se muestran los detalles de una versión:

Etiquetas automáticas de Cloud Deploy
De forma predeterminada, Cloud Deploy agrega las siguientes etiquetas a los manifiestos renderizados:
app.kubernetes.io/managed-by:Es una etiqueta estándar para indicar las herramientas de implementación. Siempre se establece en
google-cloud-deploypara identificar el origen de la carga de trabajo.deploy.cloud.google.com/location:Ubicación de la canalización de entrega implementada, por ejemplo,
us-central1.deploy.cloud.google.com/project-id:Es el ID del proyecto de la canalización de entrega implementada.
deploy.cloud.google.com/delivery-pipeline-id:Es el ID de recurso de la canalización de entrega que se usó. Se toma de la instantánea de la versión.
deploy.cloud.google.com/release-id:Es el ID de recurso de la versión implementada.
deploy.cloud.google.com/target-id:Es el ID de recurso del destino de implementación. Se toma de la instantánea de la versión.
Ejemplo de uso
Un ejemplo del uso de estas etiquetas aplicadas de forma automática sería crear un gráfico dentro de Google Cloud Observability que agregue una métrica de contenedor por propiedades de 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
También puedes usarlo con métricas personalizadas. Por ejemplo, si PodMonitor se configura con una etiqueta para que coincida con app.kubernetes.io/managed-by:
google-cloud-deploy. Luego, podrías usar una consulta para definir un gráfico de métricas personalizadas:
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
Inhabilita las etiquetas automáticas
Es posible que tu organización no permita estas etiquetas automáticas por motivos reglamentarios, de cumplimiento o de otro tipo. Para admitir esta función, el servicio de políticas de la organización ofrece una restricción que controla si se aplican estas etiquetas.
Para evitar que Cloud Deploy agregue automáticamente etiquetas a los manifiestos renderizados, establece la restricción del servicio de políticas de la organización clouddeploy.disableServiceLabelGeneration para que se aplique. Aplicar esta restricción no te impide especificar etiquetas de forma manual ni quita las etiquetas de los lanzamientos existentes.
Consulta Usa restricciones booleanas en la política de la organización para obtener más información sobre cómo habilitar restricciones.