您可以将注释和标签附加到 Cloud Deploy 资源。它们不是强制要求。
本文档列出了可以附加标签和注释的资源,并说明了如何使用它们以及可在何处查看它们。
注释和标签简介
注释是包含自由格式文本的键值对。您可以使用它们来附加与资源关联的任意信息。
您可以使用标签来组织资源。例如,您可以根据标签选择来应用逻辑。
与注释一样,标签也是键值对。但它们必须符合以下限制:
Cloud Deploy 资源最多可以有 64 个标签。
键和值不得超过 128 个字节。
键和值只能包含小写字母、数字字符、下划线和短划线。
键必须以小写字母或国际字符开头。
所有字符必须使用 UTF-8 编码。允许使用国际字符。
--labels
标志(例如,在 gcloud deploy releases
create
上)可以接受键值对列表:
"name=wrench,mass=1.3kg,count=3"
如需了解详情,请参阅 Cloud Deploy API 文档。
向 Cloud Deploy 资源添加注释和标签
您可以向以下 Cloud Deploy 资源添加注释和标签:
交付流水线
对于交付流水线,您可以向 YAML 配置文件添加注释和标签。
apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
name:
annotations:
key: "value"
labels:
key: "value"
description:
serialPipeline:
stages:
- targetId:
profiles: []
- targetId:
profiles: []
目标
在目标配置 YAML 中向目标添加注释和标签。
例如,您可以添加指向应用的第三方监控的详细信息链接。但是,如果共享了目标,请记住,它可能会用于多个应用,因此链接不应该是特定于应用的。
版本
您可以在
gcloud deploy releases create
命令上使用--labels
和--annotations
标志向版本添加注释和/或标签。您添加到版本的标签和注释转入到产生的发布中的标签或注释。例如,您可以使用注释来包括对以下项目的引用:包含要部署的更改的 Git 提交的 Git PR、作者或 SHA 哈希。如需了解详情,请参阅使用注释来跟踪版本的来源。
发布
您可以通过在
gcloud deploy releases promote
命令上指定--labels
或--annotations
来向新发布添加注释和标签。您可以通过在
gcloud deploy releases create
命令上指定--initial-rollout-labels
或--initial-rollout-annotations
来向首次发布添加注释和标签。在发布上使用注释可以执行的一些操作:
- 创建包含指向测试结果的网址的注释。
- 使用工作流管理系统中的相关工单号创建注释。
在哪里可以找到资源的注释?
如需查看任何受支持资源的注释和标签,可以使用资源的 describe
命令,也可以在 Google Cloud 控制台中查看资源的元数据。
通过 gcloud CLI
如需通过命令行查看资源的注释和标签,请针对该资源使用 describe
命令。以下示例展示了目标的详细信息:
$ gcloud deploy targets describe qsprod --delivery-pipeline=my-demo-app-1 \
--region=us-central1 \
--project=quickstart-basic8
上面的命令返回以下输出:
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'
请注意,此输出包含 target_name
注释。
在 Google Cloud 控制台中
如需查看具有此类元数据的任何 Cloud Deploy 资源的注释和标签,请在 Google Cloud 控制台中查看该资源的详细信息。
例如,下面是包含注释的流水线的交付流水线详细信息:
以下是版本的详细信息:
来自 Cloud Deploy 的自动标签
默认情况下,Cloud Deploy 会将以下标签添加到已渲染清单:
app.kubernetes.io/managed-by:
用于指示部署工具的标准标签。此字段始终设置为
google-cloud-deploy
,以标识工作负载的来源。deploy.cloud.google.com/location:
已部署的交付流水线的位置,例如
us-central1
。deploy.cloud.google.com/project-id:
已部署的交付流水线的项目 ID。
deploy.cloud.google.com/delivery-pipeline-id:
所用交付流水线的资源 ID。此项截取自发布快照。
deploy.cloud.google.com/release-id:
已部署版本的资源 ID。
deploy.cloud.google.com/target-id:
部署目标的资源 ID。此项截取自发布快照。
用法示例
使用这些自动应用的标签的一个示例是在 Google Cloud Observability 中创建一个图表,该图表通过 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
您还可以将它与自定义指标搭配使用。例如,如果 PodMonitor 配置了标签以与 app.kubernetes.io/managed-by:
google-cloud-deploy
匹配,那么您可以使用查询来为自定义指标定义图表:
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
停用自动标签
您的组织可能会出于监管、合规性或其他原因而禁止使用这些自动标签。为此,组织政策服务提供了限制条件以控制是否应用这些标签。
为了防止 Cloud Deploy 自动向已渲染清单添加标签,请设置要强制执行的组织政策服务限制条件 clouddeploy.disableServiceLabelGeneration
。强制执行此限制条件不会阻止您手动指定标签,也不会从现有版本中移除标签。
如需详细了解如何启用限制条件,请参阅在组织政策中使用布尔值限制条件。