Après avoir contrôlé la version de votre modèle de cloud, vous pouvez modifier la valeur formatVersion dans votre fichier YAML pour prendre en charge des fonctionnalités de déploiement supplémentaires.
FormatVersion s'affiche en haut de votre fichier YAML et sa valeur détermine ce que vous pouvez spécifier dans votre modèle de cloud VMware.
formatVersion: 1
inclut des spécifications de modèle pour lesinputs
et lesresources
. Il s'applique automatiquement à tous les modèles de cloud de base.Pour en savoir plus sur un modèle de base, reportez-vous à la section Modèle de cloud révisable.
-
formatVersion: 2
ajoute des spécifications de modèle pour lesmetadata
, lesvariables
et lesoutputs
. Cela s'applique automatiquement aux modèles de cloud pour AI Workstation et les clusters Kubernetes d'IA qui sont déployés à l'aide de Private AI Automation Services, mais prend en charge n'importe quel type de déploiement.Pour plus d'informations sur le déploiement d'AI Workstation et des clusters Kubernetes d'IA, reportez-vous à la section Déploiement d'éléments de catalogue Private AI.
En tant qu'administrateur de modèle de cloud, vous pouvez utiliser les spécifications incluses dans formatVersion: 2
pour rendre les déploiements plus accessibles à vos utilisateurs. Les exemples de code suivants sont supprimés pour montrer des exemples d'utilisation des spécifications de modèle formatVersion: 2
dans votre fichier YAML.
Comment utiliser la spécification du modèle metadata ?
metatdata: deploymentSettings: disableUpdateDay2Action: true hideDisabledDay2Actions: true
- Lorsque disableUpdateDay2Action est défini sur true, les utilisateurs ne voient pas l'opération de jour 2 Mettre à jour dans le menu Actions. Si l'utilisateur n'est pas autorisé à effectuer la mise à jour, l'option n'est pas disponible (grisée).
- Lorsque hideDisabledDay2Actions est défini sur true, toutes les opérations de jour 2 qui ont été désactivées pour l'utilisateur ne s'affichent pas dans le menu Actions.
Les actions de jour 2 Mettre à jour et Modifier le projet sont masquées dans l'exemple suivant.
Comment utiliser la spécification du modèle variables ?
variables: applications: - name: App1 port: 3000 showAppInfo: true - name: App2 port: 4000 showAppInfo: false
Comment utiliser la spécification du modèle outputs ?
Utilisez outputs pour définir les informations de déploiement que vous souhaitez mettre à la disposition de votre utilisateur. Toutes les sorties s'affichent sur la page des détails du déploiement sous Événements utilisateur, à l'exception des valeurs __deploymentOverview, qui s'affichent sous le déploiement Présentation.
- variables, défini dans la spécification du modèle de variables
- resources, défini dans une section Ressources et inclus dans l'exemple de code suivant
- __deploymentOverview, écrit dans 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}
- La construction if est une expression conditionnelle basée sur des entrées booléennes.
%{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}
- La boucle for permet d'effectuer des itérations sur les tableaux. Pour chaque app répertoriée dans le tableau, les conditions if sont évaluées et les valeurs de variable sont attribuées et affichées en tant que sortie.
%{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}
- Dans l'expression handlebars, les liaisons de variable se mettent à jour dynamiquement lorsque les valeurs changent. La variable est placée entre accolades doubles {{}} et, dans cet exemple, l'expression est un chemin séparé par des points.
secret 1 name - {{resource.secret-data1.object.metadata.resourceVersion}}
Emplacement de l'affichage des spécifications de modèle dans l'interface utilisateur
- __deploymentOverview est un type spécial de sortie qui s'affiche dans le déploiement Présentation.
- Toutes les autres sorties, telles que secret1name et secret2name s'affichent dans le déploiement sous l'onglet Événements utilisateur.