本頁說明如何將現有的 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 參考資料。
控制台
在推送管道清單中,按一下您的管道。
「推送管道詳細資料」頁面會以圖形顯示推送管道的進度。

在推送管道的視覺化畫面中,按一下第一個目標的「升級」。
系統會顯示「升級發布版本」對話方塊。顯示要升級的目標詳細資料。
點選「升級」。
如果發布版本後,發布管道或目標有所變更,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角色或同等權限,則圖表會包含「查看」連結。
按一下「Review」(查看)。
系統會顯示待核准的推出作業清單。

按一下「Review」(查看)。
系統會顯示「核准推出」畫面。

「資訊清單差異」分頁會顯示從目前部署版本 (如有) 到您現在核准 (或拒絕) 的版本,所算繪資訊清單的任何變更。
按一下「核准」或「拒絕」。
如果核准,應用程式就會部署到目標。如果拒絕,應用程式就不會部署,且除非重新宣傳,否則之後也無法核准。
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