Dopo aver impostato la versione del modello cloud, è possibile modificare il valore di formatVersion nel codice YAML per supportare funzionalità di distribuzione aggiuntive.
formatVersion viene visualizzato nella parte superiore del codice YAML e il suo valore determina ciò che è possibile specificare nel modello cloud di VMware.
formatVersion: 1
include le specifiche del modello perinputs
eresources
. Si applica automaticamente a tutti i modelli cloud di base.Per ulteriori informazioni su un modello di base, vedere Modello cloud revisionabile.
-
formatVersion: 2
aggiunge le specifiche del modello permetadata
,variables
eoutputs
. Si applica automaticamente ai modelli cloud per Workstation IA e AI Kubernetes Cluster distribuiti utilizzando Private AI Automation Services, ma supporta qualsiasi tipo di distribuzione.Per informazioni sulla distribuzione di Workstation IA e AI Kubernetes Cluster, vedere Come distribuire gli elementi del catalogo di Private AI.
In qualità di amministratore dei modelli cloud, è possibile utilizzare le specifiche incluse in formatVersion: 2
per rendere le distribuzioni più accessibili agli utenti. Gli esempi di codice seguenti sono progettati per illustrare esempi di utilizzo delle specifiche del modello formatVersion: 2
in YAML.
Come si utilizza la specifica del modelli metadata
metatdata: deploymentSettings: disableUpdateDay2Action: true hideDisabledDay2Actions: true
- Quando disableUpdateDay2Action è true, gli utenti non vedono l'operazione giorno 2 Aggiorna nel menu Azioni. Se l'utente non dispone delle autorizzazioni necessarie per l'aggiornamento, l'opzione viene visualizzata come non disponibile (disattivata).
- Quando hideDisabledDay2Actions è true, tutte le operazioni giorno 2 che sono state disattivate per l'utente non verranno visualizzate nel menu Azioni.
Le azioni giorno 2 Aggiorna e Modifica progetto sono nascoste nell'esempio seguente.
Come si utilizza la specifica dei modelli variables
variables: applications: - name: App1 port: 3000 showAppInfo: true - name: App2 port: 4000 showAppInfo: false
Come si utilizza la specifica dei modelli outputs
Utilizzare outputs per definire le informazioni di distribuzione che si desidera rendere disponibili per l'utente. Tutti gli output vengono visualizzati nella pagina dei dettagli della distribuzione in Eventi utente, ad eccezione dei valori di __deploymentOverview visualizzati nella Panoramica della distribuzione.
- variables definito nella specifica del modello delle variabili
- resources definito in una sezione relativa alle risorse e incluso nell'esempio di codice seguente
- __deploymentOverview scritto in Markdown
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}
- Il costrutto if è un'espressione condizionale basata su input booleani.
%{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}
- Il ciclo for consente l'iterazione su array. Per ogni app elencata nell'array, vengono valutate le condizioni if e i valori delle variabili vengono assegnati e visualizzati come output.
%{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}
- Nell'espressione handlebars, le associazioni delle variabili vengono aggiornate dinamicamente quando i valori effettivi cambiano. La variabile è racchiusa tra parentesi graffe doppie {{}} e in questo esempio l'espressione è un percorso separato da punti.
secret 1 name - {{resource.secret-data1.object.metadata.resourceVersion}}
Dove vengono visualizzate le specifiche del modello nell'interfaccia utente
- __deploymentOverview è un tipo di output speciale che viene visualizzato nella Panoramica della distribuzione.
- Tutti gli altri output come secret1name e secret2name vengono visualizzati nella distribuzione nella scheda Eventi utente.