Nach der Versionierung Ihrer Cloud-Vorlage können Sie den formatVersion-Wert in Ihrer YAML ändern, um zusätzliche Bereitstellungsfunktionen zu unterstützen.

Die formatVersion wird oben in Ihrer YAML angezeigt und ihr Wert bestimmt, was Sie in Ihrer VMware Cloud-Vorlage angeben können.

  • formatVersion: 1 enthält Vorlagenspezifikationen für inputs und resources. Sie gilt automatisch für alle Cloud-Basisvorlagen.

    Weitere Informationen zu einer Basisvorlage finden Sie unter Neueinstellbare Cloud-Vorlage.

  • formatVersion: 2 fügt Vorlagenspezifikationen für metadata, variables und outputs hinzu. Sie gilt automatisch für die Cloud-Vorlagen für KI-Workstation- und KI-Kubernetes-Cluster, die mithilfe von Private AI Automation Services bereitgestellt werden, unterstützt jedoch jede Art von Bereitstellung.

    Informationen zum Bereitstellen von KI-Workstation- und KI-Kubernetes-Clustern finden Sie unter Vorgehensweise zum Bereitstellen von Private AI-Katalogelementen.

Als Cloud-Vorlagenadministrator können Sie die in formatVersion: 2 enthaltenen Spezifikationen verwenden, um den Zugriff auf Bereitstellungen für Ihre Benutzer zu erleichtern. In den folgenden Codebeispielen werden Beispiele für die Verwendung der formatVersion: 2-Vorlagenspezifikationen in Ihrer YAML aufgeführt.

Wie verwende ich die Spezifikation der Metadatenvorlage?

Verwenden Sie metadata, um die Tag-2-Vorgänge auszublenden oder einzublenden, die für Ihre Benutzer angezeigt werden.
metadata:
  deploymentSettings:
    disableUpdateDay2Action: true
    hideDisabledDay2Actions: true
  • Wenn disableUpdateDay2Action wahr ist, wird den Benutzern der Tag-2-Vorgang Update im Menü „Aktionen“ nicht angezeigt. Wenn der Benutzer nicht über die Berechtigung zum Aktualisieren verfügt, wird die Option als nicht verfügbar (abgeblendet) angezeigt.
  • Wenn hideDisabledDay2Actions wahr ist, werden Tag-2-Vorgänge, die für den Benutzer deaktiviert wurden, nicht im Menü „Aktionen“ angezeigt.

Die Tag-2-Aktionen Update und Projekt ändern sind im folgenden Beispiel ausgeblendet.

Definieren von Metadaten für das Menü „Aktionen“ in den formatVersion2-Vorlageneinstellungen

Wie verwende ich die Spezifikation der Variablenvorlage?

Verwenden Sie variables, um Werte anzugeben, die in einer Vorlage mehrmals wiederverwendet werden, z. B. in dynamischen Konfigurationen. Eine Variablendefinition kann einfache Zeichenfolgen und Eingaben enthalten und sich auf andere Variablen beziehen. Sie verweisen auf die Variablen, die Sie in den Abschnitten „Ressourcen“ und „Ausgaben“ der Vorlage definieren.
variables:
  applications:
    - name: App1
      port: 3000
      showAppInfo: true
    - name: App2
      port: 4000
      showAppInfo: false

Wie verwende ich die Ausgaben der Variablenvorlage?

Verwenden Sie outputs, um die Bereitstellungsinformationen zu definieren, die Sie Ihrem Benutzer zur Verfügung stellen möchten. Mit Ausnahme der __deploymentOverview-Werte, die auf der Registerkarte Übersicht für die Bereitstellung angezeigt werden, werden alle Ausgaben auf der Seite „Bereitstellungsdetails“ unter Benutzerereignisse angezeigt.

Das Beispiel für outputs umfasst:
  • variables, die in der Variablenvorlagenspezifikation definiert sind
  • resources, die in einem Ressourcenabschnitt definiert und im folgenden Codebeispiel enthalten sind
  • __deploymentOverview, die im Markdown-Format geschrieben wurde
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}
Die folgenden Konstruktbeispiele werden in der __deploymentOverview bereitgestellt.
  • Das if-Konstrukt ist ein bedingter Ausdruck, der auf booleschen Eingaben basiert.
          %{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}
  • Die for-Schleife ermöglicht das Durchlaufen von Arrays. Für jede im Array aufgeführte app werden if-Bedingungen ausgewertet und Variablenwerte zugewiesen und als Ausgabe angezeigt.
          %{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}
  • Im Handlebars-Ausdruck werden Variablenbindungen dynamisch aktualisiert, wenn sich die tatsächlichen Werte ändern. Die Variable ist in doppelt geschweiften Klammern {{}} eingeschlossen, und in diesem Beispiel ist der Ausdruck ein durch Punkte getrennter Pfad.
    secret 1 name - {{resource.secret-data1.object.metadata.resourceVersion}}

Wo werden Vorlagenspezifikationen in der Benutzeroberfläche angezeigt?

outputs, die Sie definiert haben, werden in Ihrer Bereitstellung angezeigt.
  • __deploymentOverview ist eine spezielle Art der Ausgabe, die in der Übersicht der Bereitstellung angezeigt wird. Output:__deploymentOverview in den formatVersion2-Vorlageneinstellungen
  • Alle anderen Ausgaben wie secret1name und secret2name werden in der Bereitstellung auf der Registerkarte Benutzerereignisse angezeigt.

    Andere Ausgaben, die in den formatVersion2-Vorlageneinstellungen definiert sind