建立自訂目標

本文說明如何建立自訂 Cloud Deploy 目標類型,並在 Cloud Deploy 推送管道中,將該自訂目標類型做為目標使用。

以下是建立自訂目標類型並在推送管道中使用的流程概要:

  1. 建立容器化應用程式或包含可部署至自訂目標功能的應用程式,並符合自訂目標類型的 Cloud Deploy 需求

  2. 建立 CustomTargetType 定義,其中包含參照容器的工作,並指定要在容器上執行的指令。

  3. 使用 customTarget 屬性定義新目標,識別新的自訂目標類型。

  4. 從放送管道進度參照該目標

  5. 建立版本

本文件其餘部分會詳細說明每個步驟。

建立容器化應用程式

部署至自訂目標的功能定義於容器化應用程式中,您會在 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 控制台查看算繪的構件。

請按照下列步驟查看自訂算繪工作的輸出內容。

  1. 在 Google Cloud 控制台中,前往 Cloud Deploy 的「Delivery pipelines」(推送管道) 頁面,即可查看推送管道。

    開啟「推送管道」頁面

  2. 按一下推送管道的名稱。

    管道視覺化畫面會顯示應用程式的部署狀態,而您的版本則會列在「發布」分頁的「發布管道詳細資料」下方。

  3. 按一下版本名稱。

    系統隨即會顯示「發行詳細資料」頁面。

  4. 按一下「構件」分頁標籤。

  5. 在「目標構件」下方,按一下「查看構件」旁的箭頭。

    系統會列出已算繪的構件,包括已算繪的 Skaffold 設定檔,以及自訂算繪器產生的已算繪資訊清單檔案。此外,您也可以點選每個檔案旁的「儲存位置」連結,前往 Cloud Storage bucket 查看這些檔案。

    您也可以點選「查看構件」連結,使用版本檢查器依版本、目標或階段查看這些檔案。

後續步驟