在 Cloud Deploy 中使用註解和標籤

您可以將註解和標籤附加至 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 PR、作者或 Git 提交的 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 控制台中查看該資源的詳細資料。

舉例來說,以下是包含註解的管道推送管道詳細資料:

 Google Cloud 控制台中的推送管道詳細資料

以下是發行內容的詳細資料:

 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。強制執行這項限制不會禁止您手動指定標籤,也不會從現有版本中移除標籤。

如要進一步瞭解如何啟用限制,請參閱「使用組織政策中的布林限制」。