クラウド テンプレートのバージョン管理の後で、追加の展開機能をサポートするように 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 クラスタの展開については、「Private AI カタログ アイテムを展開する方法」を参照してください。
クラウド テンプレート管理者は、formatVersion: 2
が含まれる仕様を使用して、ユーザーが展開にアクセスしやすくすることができます。次のコード サンプルは、YAML で formatVersion: 2
テンプレート仕様を使用する方法の例を示すために省略しています。
metadata テンプレート仕様を使用する方法
ユーザーに表示されるインストール後の作業の非表示と非表示を切り替えるには、
metadata を使用します。
metatdata: deploymentSettings: disableUpdateDay2Action: true hideDisabledDay2Actions: true
- disableUpdateDay2Action が true の場合は、インストール後の作業である [更新] が [アクション] メニューに表示されません。ユーザーに更新権限がない場合、このオプションは使用不可と表示(グレーアウト)されます。
- hideDisabledDay2Actions が true の場合、ユーザーに対して無効にされたインストール後の作業は [アクション] メニューに表示されません。
インストール後の作業である [更新] と [プロジェクトの変更] は、次の例では非表示になっています。
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}
- ハンドルバー式では、実際の値が変更されると、変数バインドが動的に更新されます。変数は二重中括弧 {{}} で囲まれています。この例では、式はドット区切りのパスです。
secret 1 name - {{resource.secret-data1.object.metadata.resourceVersion}}
テンプレート仕様が表示されるユーザー インターフェイスの場所
定義した
outputs が展開に表示されます。
- __deploymentOverview は、展開の [概要] に表示される特別な種類の出力です。
- 他のすべての出力(secret1name、secret2name など)は、展開の [ユーザー イベント] に表示されます。