本頁面說明如何將現有的 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 參考資料。
主控台
按一下推送管道清單中顯示的管道。
「Delivery pipeline details」(提交管道詳細資料) 頁面會以圖形呈現提交管道的進度。
在發布管道圖表中的第一個目標上,按一下「提昇」。
系統會顯示「宣傳版本」對話方塊。這份報表會顯示您要宣傳的目標對象詳細資料。
點選「升級」。
如果發布管道或目標在版本建立後有所變更,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 主題的使用者或系統會收到通知,並可核准或拒絕新功能的推出。
使用平行部署時,您可以將多目標設定為需要核准。如果系統拒絕將目標升級,控制器推出作業就會失敗,狀態為 APPROVAL_REJECTED
,且系統不會建立子項推出作業。
核准或拒絕推出作業
每個目標都必須經過核准,才能部署任何版本。當您將版本提交至需要核准的目標時,Cloud Deploy 會將 Pub/Sub 訊息發布至 clouddeploy-approvals
主題。
任何具備 roles/clouddeploy.approver
角色的使用者或服務帳戶,都可以核准將 Cloud Deploy 部署至需要核准的目標。
整合式工作流程管理系統收到使用服務通知的核准通知後,即可使用 Cloud Deploy API 核准或拒絕推行。
手動核准或拒絕
主控台
在 Google Cloud 控制台中,前往 Cloud Deploy 的「Delivery pipelines」(推送管道) 頁面,查看可用的推送管道清單。
Google Cloud 控制台會顯示發布管道清單。系統不會顯示已設定但尚未註冊至 Cloud Deploy 服務的提交管道。
按一下推送管道的名稱。
畫面上會顯示管道圖表。如果核准程序尚未完成,且您擁有
roles/clouddeploy.approver
角色或等同的權限,圖表會包含「查看」連結。按一下「查看」。
系統會顯示待核准的推出作業清單。
按一下「查看」。
畫面上會顯示「Approve rollout」(核准推播) 畫面。
「資訊清單差異」分頁會顯示目前已部署版本 (如有) 與您目前核准 (或拒絕) 的版本,對轉譯資訊清單所做的任何變更。
按一下「核准」或「拒絕」。
如果您核准,應用程式就會部署至目標。如果您拒絕,應用程式就不會部署,且除非重新提交,否則無法在日後獲得核准。
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