Nadat u versies van uw cloudsjabloon heeft gemaakt, kunt u de waarde formatVersion in uw YAML wijzigen om aanvullende implementatiefuncties te ondersteunen.
De formatVersion wordt bovenaan uw YAML weergegeven en de waarde ervan bepaalt wat u kunt opgeven in uw VMware-cloudsjabloon.
formatVersion: 1
bevat sjabloonspecificaties voorinputs
enresources
. Deze is automatisch van toepassing op alle basiscloudsjablonen.Zie Weer te geven cloudsjabloon voor meer informatie over een basissjabloon.
-
formatVersion: 2
voegt sjabloonspecificaties toe voormetadata
,variables
enoutputs
. Deze is automatisch van toepassing op de cloudsjablonen voor AI Workstation- en AI Kubernetes-clusters die worden geïmplementeerd met Private AI Automation Services, maar ondersteunt elke vorm van implementatie.Zie Hoe implementeer ik privé-AI-catalogusitems voor informatie over het implementeren van AI-workstation en AI Kubernetes-clusters.
Als cloudsjabloonbeheerder kunt u de specificaties van formatVersion: 2
gebruiken om implementaties toegankelijker te maken voor uw gebruikers. De volgende codevoorbeelden zijn ingekort om voorbeelden te tonen van hoe u de formatVersion: 2
-sjabloonspecificaties in uw YAML kunt gebruiken.
Hoe gebruik ik de sjabloonspecificatie van de metagegevens
metadata: deploymentSettings: disableUpdateDay2Action: true hideDisabledDay2Actions: true
- Wanneer disableUpdate2Action waar is, zien gebruikers de bewerking Bijwerken voor dag 2 niet in het menu Acties. Als de gebruiker geen rechten heeft om een update uit te voeren, is de optie niet beschikbaar (grijs).
- Wanneer hideDisabledDay2Actions waar is, wordt elke bewerking voor dag 2 die voor de gebruiker is gedeactiveerd, niet weergegeven in het menu Acties.
De acties Bijwerken en Project wijzigen voor dag 2 zijn in het volgende voorbeeld verborgen.
Hoe gebruik ik de sjabloonspecificatie voor variabelen
variables: applications: - name: App1 port: 3000 showAppInfo: true - name: App2 port: 4000 showAppInfo: false
Hoe gebruik ik de sjabloonspecificatie voor uitvoer
Gebruik outputs om de implementatiegegevens te definiëren die u beschikbaar wilt maken voor uw gebruiker. Alle uitvoer wordt weergegeven op de pagina met implementatiedetails onder Gebruikersgebeurtenissen, met uitzondering van de waarden voor __deploymentOverview die worden weergegeven onder het Overzicht van de implementatie.
- variables gedefinieerd in de sjabloonspecificatie voor variabelen
- resources gedefinieerd in een sectie met resources en opgenomen in het volgende codevoorbeeld
- __deploymentOverview geschreven 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}
- De construct if is een voorwaardelijke expressie die is gebaseerd op booleaanse invoer.
%{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}
- Met de lus for kunt u dit herhalen in arrays. Voor elke app die in de array wordt weergegeven, worden de voorwaarden met if geëvalueerd en worden variabelewaarden toegewezen en weergegeven als uitvoer.
%{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}
- In de handlebars-expressie worden variabelebindingen dynamisch bijgewerkt wanneer de werkelijke waarden worden gewijzigd. De variabele is ingesloten tussen dubbele accolades {{}} en in dit voorbeeld is de expressie een pad met de punt als scheidingsteken.
secret 1 name - {{resource.secret-data1.object.metadata.resourceVersion}}
Waar worden sjabloonspecificaties weergegeven in de gebruikersinterface
- __deploymentOverview is een speciaal type uitvoer dat wordt weergegeven in het Overzicht van de implementatie.
- Alle andere uitvoer, zoals secret1name en secret2name, wordt in de implementatie weergegeven onder het tabblad Gebruikersgebeurtenissen.