對雲端範本進行版本設定後,可以變更 YAML 中的 formatVersion 值以支援其他部署功能。
formatVersion 顯示在 YAML 的頂部,其值決定了可以在 VMware 雲端範本中指定的內容。
formatVersion: 1
包括inputs
和resources
的範本規格。將自動套用至所有基本雲端範本。若要進一步瞭解基本範本,請參閱可檢閱的雲端範本。
-
formatVersion: 2
新增metadata
、variables
和outputs
的範本規格。將自動套用至使用 Private AI Automation Services 部署的 AI Workstation 和 AI Kubernetes 叢集的雲端範本,但支援任何類型的部署。如需部署 AI Workstation 和 AI Kubernetes 叢集的相關資訊,請參閱如何部署私人 AI 目錄項目。
身為雲端範本管理員,您可以使用 formatVersion: 2
包含的規格,以便使用者更方便存取部署。以下代碼範例已經過剪除,顯示了有關如何在 YAML 中使用 formatVersion: 2
範本規格的範例。
如何使用 metadata 範本規格
使用
metadata 可隱藏或取消隱藏為使用者顯示的第 2 天作業。
metadata: deploymentSettings: disableUpdateDay2Action: true hideDisabledDay2Actions: true
- 當 disableUpdateDay2Action 為 true 時,使用者不會在 [動作] 功能表中看到更新第 2 天動作。如果使用者沒有更新權限,該選項將顯示為不可用 (呈現灰色)。
- 當 hideDisabledDay2Actions 為 true 時,針對使用者停用的任何第 2 天作業都不會顯示在 [動作] 功能表中。
更新和變更專案第 2 天動作在以下範例中處於隱藏狀態。
如何使用 variables 範本規格
使用
variables 可指定在範本中多次重複使用的值,例如在動態組態中。變數定義可以包括普通字串、輸入和參照其他變數。可以參照在範本的 resources 和 outputs 部分中定義的變數。
variables: applications: - name: App1 port: 3000 showAppInfo: true - name: App2 port: 4000 showAppInfo: false
如何使用 outputs 範本規格
使用 outputs 可定義要提供給使用者的部署資訊。所有輸出都顯示在部署詳細資訊頁面上的使用者事件下,但 __deploymentOverview 值除外,該值顯示在部署概觀下。
outputs 範例包括:
- variables 範本規格中定義的 variables
- 在 resources 部分中定義並包含在以下代碼範例中的 resources
- 以 Markdown 編寫的 __deploymentOverview
outputs: secret1name: value: ${resource.secret-data1.object.metadata.name} secret2name: value: ${resource.secret-data2.object.metadata.name} __deploymentOverview: value: | ### Deployment details %{if starts_with(resource.CCI_Supervisor_Namespace_1.name, 'dummy')} This is a dummy namespace with name ${resource.CCI_Supervisor_Namespace_1.name} %{else} This is a real namespace with name ${resource.CCI_Supervisor_Namespace_1.name} %{endif} %{for app in variable.applications} ##### App details %{if app.showAppInfo} App name - ${app.name}, App port - ${app.port} %{else} App info is hidden because showAppInfo is ${app.showAppInfo} %{endif} %{endfor} #### Handle bars bindings. The below values will update dynamically if the values change. Note that we use '\{\{' to indicate handle bars expressions secret 1 resource version - {{resource.secret-data1.object.metadata.resourceVersion}} resources: CCI_Supervisor_Namespace_1: type: CCI.Supervisor.Namespace properties: name: ${input.namespaceName} regionName: private-ai-foundation-dsdunnjz className: vpaif-quickstart-3 secret-data1: type: CCI.Supervisor.Resource properties: context: ${resource.CCI_Supervisor_Namespace_1.id} manifest: apiVersion: v1 kind: Secret metadata: name: nvaie-apikey type: Opaque stringData: username: $oauthtoken password: ${input.ngcPortalAccessKey} secret-data2: type: CCI.Supervisor.Resource properties: context: ${resource.CCI_Supervisor_Namespace_1.id} manifest: apiVersion: v1 kind: Secret metadata: name: nvaie-apikey1 type: Opaque stringData: username: $oauthtoken password: ${input.ngcPortalAccessKey}
__deploymentOverview 中提供以下建構範例。
- if 建構是基於布林輸入的條件運算式。
%{if starts_with(resource.CCI_Supervisor_Namespace_1.name, 'dummy')} This is a dummy namespace with name ${resource.CCI_Supervisor_Namespace_1.name} %{else} This is a real namespace with name ${resource.CCI_Supervisor_Namespace_1.name} %{endif}
- for 迴圈允許對陣列進行反覆運算。對於陣列中列出的每個 app,評估 if 條件,指派變數值並將其顯示為輸出。
%{for app in variable.applications} ##### App details %{if app.showAppInfo} App name - ${app.name}, App port - ${app.port} %{else} App info is hidden because showAppInfo is ${app.showAppInfo} %{endif} %{endfor}
- 在 handlebars 運算式中,變數繫結隨著實際值的變更動態更新。變數用雙大括弧 {{}} 括起來,在以下範例中,運算式是一個以點分隔的路徑。
secret 1 name - {{resource.secret-data1.object.metadata.resourceVersion}}
範本規格在使用者介面中顯示的位置
所定義的
outputs 將顯示在部署中。
- __deploymentOverview 是一種特殊輸出,顯示在部署概觀中。
- 所有其他輸出 (例如 secret1name 和 secret2name) 顯示在部署的使用者事件索引標籤下。