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 voor inputs en resources. Deze is automatisch van toepassing op alle basiscloudsjablonen.

    Zie Weer te geven cloudsjabloon voor meer informatie over een basissjabloon.

  • formatVersion: 2 voegt sjabloonspecificaties toe voor metadata, variables en outputs. 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

Gebruik metadata om bewerkingen voor dag 2 die voor uw gebruikers worden weergegeven, te verbergen of zichtbaar te maken.
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.

Metagegevens voor het menu Actie definiëren in de sjablooninstellingen voor formatVersion2

Hoe gebruik ik de sjabloonspecificatie voor variabelen

Gebruik variables om waarden op te geven die meerdere keren opnieuw worden gebruikt in een sjabloon, zoals in dynamische configuraties. Een variabeledefinitie kan gewone tekenreeksen en invoer bevatten en naar andere variabelen verwijzen. U verwijst naar de variabelen die u definieert in de secties voor resources en uitvoer van de sjabloon.
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.

Het voorbeeld voor outputs bevat:
  • 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 volgende voorbeelden van constructs worden geleverd in het __deploymentOverview.
  • 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

outputs die u heeft gedefinieerd, worden in uw implementatie weergegeven.
  • __deploymentOverview is een speciaal type uitvoer dat wordt weergegeven in het Overzicht van de implementatie. Output:__deploymentOverview in formatVersion2-sjablooninstellingen
  • Alle andere uitvoer, zoals secret1name en secret2name, wordt in de implementatie weergegeven onder het tabblad Gebruikersgebeurtenissen.

    Overige uitvoer gedefinieerd in de sjablooninstellingen voor formatVersion2