Vous pouvez associer des annotations et des libellés à vos ressources Cloud Deploy. Elles ne sont pas obligatoires.
Ce document liste les ressources auxquelles vous pouvez associer des libellés et des annotations, et explique comment les utiliser et où les afficher.
À propos des annotations et des libellés
Les annotations sont des paires clé-valeur de texte libre. Vous pouvez les utiliser pour joindre des informations arbitraires associées à la ressource.
Vous pouvez utiliser des libellés pour organiser les ressources. Par exemple, vous pouvez appliquer une logique basée sur la sélection de libellés.
Comme pour les annotations, les libellés sont des paires clé-valeur. Toutefois, ils doivent respecter les limites suivantes:
Une ressource Cloud Deploy ne peut pas comporter plus de 64 libellés.
Les clés et les valeurs doivent toutes deux comporter 128 octets ou moins.
Les clés et les valeurs ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets.
Les clés doivent commencer par une lettre minuscule ou un caractère international.
Tous les caractères doivent être au format d'encodage UTF-8. Les caractères internationaux sont autorisés.
L'indicateur --labels
(par exemple, sur gcloud deploy releases
create
) peut accepter une liste de paires clé-valeur:
"name=wrench,mass=1.3kg,count=3"
Pour en savoir plus, consultez la documentation de l'API Cloud Deploy.
Ajouter des annotations et des libellés aux ressources Cloud Deploy
Vous pouvez ajouter des annotations et des libellés aux ressources Cloud Deploy suivantes:
Pipelines de livraison
Pour les pipelines de diffusion, vous ajoutez des annotations et des libellés au fichier de configuration YAML.
apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
name:
annotations:
key: "value"
labels:
key: "value"
description:
serialPipeline:
stages:
- targetId:
profiles: []
- targetId:
profiles: []
Cibles
Ajoutez des annotations et des libellés aux cibles dans le fichier YAML de configuration de la cible.
Par exemple, vous pouvez inclure un lien vers des informations supplémentaires sur la surveillance tierce de votre application. Toutefois, si la cible est partagée, n'oubliez pas qu'elle peut être utilisée pour plusieurs applications. Le lien ne doit donc pas être spécifique à une application.
Versions
Vous pouvez ajouter des annotations ou des libellés, ou les deux, à une version à l'aide des options
--labels
et--annotations
de la commandegcloud deploy releases create
. Les libellés et les annotations que vous ajoutez à une version ne sont pas reportés en tant que libellés ou annotations sur les déploiements qui en résultent.Par exemple, vous pouvez utiliser des annotations pour inclure une référence à une PR Git, à un auteur ou à un hachage SHA du commit Git contenant les modifications à déployer. Pour en savoir plus, consultez Utiliser des annotations pour suivre la provenance de la version.
Déploiements
Vous pouvez ajouter des annotations et des libellés aux nouveaux déploiements en spécifiant
--labels
ou--annotations
dans la commandegcloud deploy releases promote
.Vous pouvez ajouter des annotations et des libellés au premier déploiement en spécifiant
--initial-rollout-labels
ou--initial-rollout-annotations
dans la commandegcloud deploy releases create
.Voici quelques actions que vous pouvez effectuer à l'aide d'annotations sur un déploiement:
- Créez une annotation contenant l'URL pointant vers les résultats du test.
- Créez une annotation avec un numéro de demande pertinent à partir d'un système de gestion de workflow.
Où puis-je trouver les annotations d'une ressource ?
Vous pouvez afficher les annotations et les libellés de n'importe quelle ressource compatible à l'aide de la commande describe
de la ressource ou en affichant les métadonnées de la ressource dans la console Google Cloud.
Depuis gcloud CLI
Pour afficher les annotations et les libellés d'une ressource à partir de la ligne de commande, exécutez une commande describe
sur cette ressource. L'exemple suivant montre les détails d'une cible:
$ gcloud deploy targets describe qsprod --delivery-pipeline=my-demo-app-1 \
--region=us-central1 \
--project=quickstart-basic8
La commande ci-dessus affiche le résultat suivant :
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'
Notez que cette sortie inclut l'annotation target_name
.
Dans la console Google Cloud
Pour afficher les annotations et les libellés de toute ressource Cloud Deploy disposant de telles métadonnées, consultez les détails de cette ressource dans la console Google Cloud.
Par exemple, voici les détails du pipeline de diffusion d'un pipeline qui inclut une annotation:
Voici les détails d'une version:
Libellés automatiques de Cloud Deploy
Par défaut, Cloud Deploy ajoute les libellés suivants aux fichiers manifestes affichés:
app.kubernetes.io/managed-by:
Libellé standard indiquant les outils de déploiement. Cette valeur est toujours définie sur
google-cloud-deploy
pour identifier l'origine de la charge de travail.deploy.cloud.google.com/location:
Emplacement du pipeline de diffusion déployé, par exemple
us-central1
.deploy.cloud.google.com/project-id:
ID du projet du pipeline de diffusion déployé.
deploy.cloud.google.com/delivery-pipeline-id:
ID de ressource du pipeline de diffusion utilisé. Il s'agit de l'instantané de la version.
deploy.cloud.google.com/release-id:
ID de ressource de la version déployée.
deploy.cloud.google.com/target-id:
ID de ressource de la cible de déploiement. Il s'agit de l'instantané de la version.
Exemple d'utilisation
Un exemple d'utilisation de ces libellés appliqués automatiquement consiste à créer un graphique dans Google Cloud Observability en vue d'agréger une métrique de conteneur par propriétés 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
Vous pouvez également l'utiliser avec des métriques personnalisées. Par exemple, si PodMonitor est configuré avec un libellé correspondant à app.kubernetes.io/managed-by:
google-cloud-deploy
. Vous pouvez ensuite utiliser une requête pour définir un graphique pour les métriques personnalisées:
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
Désactiver les libellés automatiques
Votre organisation peut interdire ces libellés automatiques pour des raisons réglementaires, de conformité ou autres. Pour ce faire, le service de règles d'administration propose une contrainte qui contrôle si ces libellés sont appliqués ou non.
Pour empêcher Cloud Deploy d'ajouter automatiquement des libellés aux fichiers manifestes affichés, définissez la contrainte de service de règles d'administration clouddeploy.disableServiceLabelGeneration
sur "Enforcement" (Application). L'application de cette contrainte ne vous empêche pas de spécifier manuellement des libellés, ni de supprimer des libellés des versions existantes.
Pour en savoir plus sur l'activation des contraintes, consultez la section Utiliser des contraintes booléennes dans la règle d'administration.