本文說明如何建立自訂 Cloud Deploy 目標類型,並在 Cloud Deploy 推送管道中,將該自訂目標類型做為目標使用。
以下是建立自訂目標類型並在推送管道中使用的流程概要:
建立
CustomTargetType定義,其中包含參照容器的工作,並指定要在容器上執行的指令。使用
customTarget屬性定義新目標,識別新的自訂目標類型。建立版本。
本文件其餘部分會詳細說明每個步驟。
建立容器化應用程式
部署至自訂目標的功能定義於容器化應用程式中,您會在 CustomTargetType 定義中提供給 Cloud Deploy。如果發布管道包含使用自訂目標類型的目標,Cloud Deploy 會呼叫為該自訂目標類型定義的容器,執行您定義的自訂轉譯和部署作業。
應用程式的行為由您決定。不過,它必須使用 Cloud Deploy 提供的輸入環境變數,並傳回必要輸出內容。
在大多數情況下,您會為建立的每個自訂目標類型,分別建立一個自訂算繪和一個自訂部署的容器。自訂算繪器為選用項目,但除非自訂目標使用內建算繪器算繪時可正常運作,否則您必須建立自訂算繪器。根據預設,Cloud Deploy 會使用 skaffold render 算繪資訊清單。
定義自訂目標類型
如要定義自訂目標,請先使用 CustomTargetType 設定建立自訂目標類型。您可以在與傳送管道定義相同的檔案中建立 CustomTargetType,也可以使用目標定義或在個別檔案中建立。
CustomTargetType 的定義如下:
apiVersion: deploy.cloud.google.com/v1
kind: CustomTargetType
metadata:
name: [CUSTOM_TARGET_TYPE_NAME]
annotations:
labels:
description:
tasks:
render: [RENDER_TASK]
deploy: [DEPLOY_TASK]
地點
CUSTOM_TARGET_TYPE_NAME這是您為這個自訂目標類型定義指定的任意名稱。任何使用您定義的自訂目標類型的目標,都會在目標定義中參照這個名稱。
RENDER_TASK這是定義自訂算繪的工作。如未提供,Cloud Deploy 會使用Skaffold 設定中指定的內建算繪器。
DEPLOY_TASK
註冊自訂目標類型
設定 CustomTargetType 後,請執行 gcloud deploy apply 指令,在 Google Cloud 專案中註冊 CustomTargetType 資源:
gcloud deploy apply --file=[FILE] --project=[PROJECT] --region=[REGION]
其中:
FILE 是您定義這個自訂目標類型的檔案名稱。
PROJECT 是要建立這項資源的 Google Cloud 專案。
CustomTargetType 必須與參照該 Target 資源的專案位於相同專案。如果您已將專案設為 Google Cloud CLI 的預設專案,則不需要指定專案。
REGION 是要建立這個資源的區域 (例如 us-central1)。CustomTargetType 必須與參照該資源的 Target 位於相同區域。如果已將區域設為 gcloud CLI 的預設區域,則不需要指定區域。
CustomTargetType 現在已建立為 Cloud Deploy 資源,您可以在 Target 定義中使用該資源,建立自訂目標。
如要進一步瞭解 CustomTargetType 定義,請參閱 Cloud Deploy 設定結構定義參考資料。
定義目標
支援目標類型的目標定義與自訂目標定義的唯一差異,在於自訂目標定義包含 customTarget 節。customTarget 的語法如下:
customTarget:
customTargetType: [CUSTOM_TARGET_TYPE_NAME]
其中 CUSTOM_TARGET_TYPE_NAME 是在自訂目標類型設定中定義的 name 屬性值。
將目標新增至推送管道
您可以在推送管道中使用自訂目標,就像使用支援的目標類型一樣。也就是說,支援的目標類型和自訂目標在放送管道的進度上沒有差異。
放送管道中的所有目標都必須使用相同的目標類型。舉例來說,您無法建立推送 pipeline,讓部分目標部署至 Google Kubernetes Engine,部分目標則部署至自訂目標。
與支援的目標類型相同,您可以在管道階段中加入部署參數。
建立發布版本
自訂目標類型定義完成,且已建立要使用該類型的目標後,您現在可以照常建立版本:
gcloud deploy releases create [RELEASE_NAME] \
--project=[PROJECT_NAME] \
--region=[REGION] \
--delivery-pipeline=[PIPELINE_NAME]
建立版本後,系統會針對推送管道中的每個目標執行自訂轉譯作業,包括處理在版本、目標或推送管道中設定的部署參數。Cloud Deploy 會將部署參數做為輸入內容提供給自訂算繪容器。
查看自訂目標的輸出內容
如果自訂算繪工作符合自訂目標的規定,您可以使用 Google Cloud 控制台查看算繪的構件。
請按照下列步驟查看自訂算繪工作的輸出內容。
在 Google Cloud 控制台中,前往 Cloud Deploy 的「Delivery pipelines」(推送管道) 頁面,即可查看推送管道。
按一下推送管道的名稱。
管道視覺化畫面會顯示應用程式的部署狀態,而您的版本則會列在「發布」分頁的「發布管道詳細資料」下方。
按一下版本名稱。
系統隨即會顯示「發行詳細資料」頁面。
按一下「構件」分頁標籤。
在「目標構件」下方,按一下「查看構件」旁的箭頭。
系統會列出已算繪的構件,包括已算繪的 Skaffold 設定檔,以及自訂算繪器產生的已算繪資訊清單檔案。此外,您也可以點選每個檔案旁的「儲存位置」連結,前往 Cloud Storage bucket 查看這些檔案。
您也可以點選「查看構件」連結,使用版本檢查器依版本、目標或階段查看這些檔案。
後續步驟
請參閱可用的自訂目標類型範例。
進一步瞭解 Tasks
進一步瞭解如何設定 Cloud Deploy 目標