本頁說明如何將現有的 Cloud Deploy 版本升級至推送管道進展中的下一個目標。
事前準備
本頁面假設您已建立發行內容。
推送版本
將版本部署至推送管道中定義的目標後,即可將其推送至下一個目標:
gcloud
gcloud deploy releases promote --release=RELEASE_NAME \
--delivery-pipeline=PIPELINE_NAME \
--region=REGION
其中:
RELEASE_NAME
是您要升級的版本名稱。
PIPELINE_NAME
是您用來管理這個版本部署作業的推送管道名稱。
REGION
是建立版本的區域名稱,例如 us-central1
。必填。
如要進一步瞭解 gcloud deploy releases promote
指令,請參閱 Google Cloud SDK 參考資料。
主控台
在推送管道清單中,按一下您的管道。
「推送 pipeline 詳細資料」頁面會以圖形顯示推送 pipeline 的進度。
在推送管道的視覺化圖表中,按一下第一個目標上的「升級」。
系統會顯示「Promote release」對話方塊。顯示您宣傳目標的詳細資料。
點選「升級」。
如果發布版本後,發布管道或目標有所變更,Cloud Deploy 會傳回訊息,指出可能不符,並提示您確認升級。您可以n
回應提示,並在繼續操作前檢查管道版本之間的差異。如果選擇繼續宣傳,系統會根據建立版本時定義的推送管道部署版本。如要進一步瞭解管道不符問題,請參閱「每個版本的管道執行個體」。
Cloud Deploy 會在目的地目標中為版本建立 rollout
,並將版本排入部署佇列。部署後,傳送管道的視覺化內容會顯示這項事實:
管理推送管道的核准
你可以要求核准任何目標,並核准或拒絕發行至該目標。
如要以程式輔助方式管理核准作業,請使用 Pub/Sub 和 Cloud Deploy API,將工作流程管理系統 (例如 ServiceNow) 或其他系統與 Cloud Deploy 整合。
需要核准
如要規定任何目標都必須經過核准,請在目標設定中將 requireApproval
設為 true
:
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name:
description:
requireApproval: true
詳情請參閱「交付管道設定」。
如果推出作業待核准,訂閱 clouddeploy-approvals
Pub/Sub 主題的使用者或系統會收到來自 clouddeploy-approvals
主題的通知,然後就能核准或拒絕推出作業。
使用平行部署時,您可以將多重目標設定為需要核准。
如果升級至目標遭到拒絕,控制器推出作業就會失敗,並處於 APPROVAL_REJECTED
狀態,且不會建立子項推出作業。
核准或拒絕推出作業
具備 roles/clouddeploy.approver
角色的使用者或服務帳戶,可以核准 Cloud Deploy 推出至需要核准的目標。
整合式工作流程管理系統收到需要核准的通知 (使用服務通知) 後,即可使用 Cloud Deploy API 核准或拒絕推出作業。
手動核准或拒絕
主控台
在 Google Cloud 控制台中,前往 Cloud Deploy 的「Delivery pipelines」(推送管道) 頁面,查看可用推送管道的清單。
推送管道清單會顯示在 Google Cloud 控制台。 系統不會顯示已設定但未向 Cloud Deploy 服務註冊的交付管道。
按一下推送管道的名稱。
系統會顯示管道圖表。如果核准程序尚未完成,且您具備
roles/clouddeploy.approver
角色或同等權限,則視覺化內容會包含「查看」連結。按一下「查看」。
系統會顯示待核准的推出作業清單。
按一下「查看」。
系統會顯示「核准推出」畫面。
「資訊清單差異」分頁會顯示從目前部署版本 (如有) 到您現在核准 (或拒絕) 的版本,所算繪資訊清單的任何變更。
按一下「核准」或「拒絕」。
如果核准,應用程式就會部署到目標。如果拒絕,應用程式就不會部署,且除非重新宣傳,否則之後無法核准。
gcloud
具備「roles/clouddeploy.approver
」角色的使用者可以手動核准或拒絕推出。如要核准,請按照下列步驟操作:
gcloud deploy rollouts approve rollout-name --delivery-pipeline=pipeline-name \
--region=region \
--release=release-name
如要拒絕:
gcloud deploy rollouts reject rollout-name --delivery-pipeline=pipeline-name \
--region=region \
--release=release-name