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 en función de la selección de etiquetas.
Al igual que las anotaciones, las etiquetas son pares clave-valor. Sin embargo, deben cumplir las siguientes limitaciones:
Un recurso de Cloud Deploy puede tener un máximo de 64 etiquetas.
Tanto las claves como los valores deben tener 128 bytes como máximo.
Las claves y los valores solo pueden contener letras minúsculas, caracteres numéricos, guiones bajos y guiones.
Las claves deben empezar por una letra minúscula o un carácter internacional.
Todos los caracteres deben usar la codificación UTF-8. Se permite utilizar caracteres internacionales.
La marca --labels
(por ejemplo, en gcloud deploy releases
create
) puede aceptar una lista de pares clave-valor:
"name=wrench,mass=1.3kg,count=3"
Consulta más información en la documentación de la API Cloud Deploy.
Añadir anotaciones y etiquetas a los recursos de Cloud Deploy
Puedes añadir anotaciones y etiquetas a los siguientes recursos de Cloud Deploy:
Flujos de procesamiento de entrega
En el caso de las canalizaciones de entrega, debes añadir 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
Añada anotaciones y etiquetas a los objetivos en el archivo YAML de configuración de objetivos.
Por ejemplo, puedes incluir un enlace a más información sobre la monitorización de terceros de tu aplicación. Sin embargo, si el destino se comparte, recuerda que se puede usar en más de una aplicación, por lo que el enlace no debe ser específico de una aplicación.
Versiones
Puedes añadir anotaciones o etiquetas (o ambas) a una versión con las marcas
--labels
y--annotations
en el comandogcloud deploy releases create
. Las etiquetas y las anotaciones que añadas a una versión no se conservarán como etiquetas ni 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 contenga los cambios que se van a implementar. Consulta más información en el artículo Usar anotaciones para registrar la procedencia de la versión.
Implementaciones
Puedes añadir anotaciones y etiquetas a los nuevos lanzamientos especificando
--labels
o--annotations
en el comandogcloud deploy releases promote
.Puedes añadir anotaciones y etiquetas a la primera publicación especificando
--initial-rollout-labels
o--initial-rollout-annotations
en el comandogcloud deploy releases create
.Estas son algunas de las acciones que puedes llevar a cabo 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 incidencia relevante de un sistema de gestión de flujos de trabajo.
¿Dónde puedo encontrar las anotaciones de un recurso?
Puedes ver las anotaciones y las etiquetas de cualquier recurso admitido mediante el comando describe
del recurso o consultando sus metadatos en laGoogle Cloud consola.
Desde la CLI de gcloud
Para ver las anotaciones y las etiquetas de un recurso desde la línea de comandos, usa el 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 devuelve 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'
Ten en cuenta que esta salida incluye la anotación target_name
.
En la consola Google Cloud
Para ver las anotaciones y las etiquetas de cualquier recurso de Cloud Deploy que tenga estos metadatos, consulta los detalles de ese recurso en la Google Cloud consola.
Por ejemplo, aquí se muestran los detalles del flujo de procesamiento de entrega de un flujo de procesamiento que incluye una anotación:
Estos son los detalles de un lanzamiento:
Etiquetas automáticas de Cloud Deploy
De forma predeterminada, Cloud Deploy añade las siguientes etiquetas a los manifiestos renderizados:
app.kubernetes.io/managed-by:
Una etiqueta estándar para indicar las herramientas de implementación. Siempre se le asigna el valor
google-cloud-deploy
para identificar el origen de la carga de trabajo.deploy.cloud.google.com/location:
La ubicación de la canalización de entrega implementada, por ejemplo,
us-central1
.deploy.cloud.google.com/project-id:
El ID del proyecto de la canalización de distribución desplegada.
deploy.cloud.google.com/delivery-pipeline-id:
ID de recurso de la canalización de entrega utilizada. Esta información se ha obtenido de la captura de la versión.
deploy.cloud.google.com/release-id:
ID de recurso de la versión implementada.
deploy.cloud.google.com/target-id:
ID de recurso del destino de la implementación. Esta información se ha obtenido de la captura de la versión.
Ejemplo de uso
Un ejemplo de uso de estas etiquetas aplicadas automáticamente sería crear un gráfico en 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 puede 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
. Después, puedes 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
Inhabilitar las etiquetas automáticas
Es posible que tu organización no permita estas etiquetas automáticas por motivos normativos, de cumplimiento u otros. Para ello, el servicio de políticas de organización ofrece una restricción que controla si se aplican o no estas etiquetas.
Para evitar que Cloud Deploy añada automáticamente etiquetas a los manifiestos renderizados, define la restricción del servicio de políticas de la organización clouddeploy.disableServiceLabelGeneration
para que se aplique. Aplicar esta restricción no le impide especificar etiquetas manualmente ni elimina etiquetas de las versiones actuales.
Consulta más información sobre cómo habilitar restricciones en el artículo Usar restricciones booleanas en la política de organización.