클라우드 템플릿의 버전을 지정한 후 추가 배포 기능을 지원하도록 YAML에서 formatVersion 값을 변경할 수 있습니다.
formatVersion은 YAML의 맨 위에 표시되며 해당 값에 따라 VMware Cloud 템플릿에서 지정할 수 있는 내용이 결정됩니다.
formatVersion: 1
에는inputs
및resources
에 대한 템플릿 규격이 포함되어 있습니다. 모든 기본 클라우드 템플릿에 자동으로 적용됩니다.기본 템플릿에 대해 자세히 알아보려면 검토 가능한 클라우드 템플릿 항목을 참조하십시오.
-
formatVersion: 2
는metadata
,variables
,outputs
에 대한 템플릿 규격을 추가합니다. Private AI Automation Services를 사용하여 배포되는 AI Workstation 및 AI Kubernetes 클러스터에 대한 클라우드 템플릿에 자동으로 적용되지만 모든 종류의 배포를 지원합니다.AI Workstation 및 AI Kubernetes 클러스터 배포에 대한 자세한 내용은 개인 AI 카탈로그 항목을 배포하는 방법 항목을 참조하십시오.
클라우드 템플릿 관리자는 formatVersion: 2
에 포함된 규격을 사용하여 사용자가 배포에 더 쉽게 액세스할 수 있도록 할 수 있습니다. 다음 코드 샘플은 YAML에서 formatVersion: 2
템플릿 규격을 사용하는 방법의 예를 보여주도록 정리되어 있습니다.
메타데이터 템플릿 규격을 사용하는 방법
metadata를 사용하여 사용자에게 표시되는 2일차 작업을 숨기거나 숨기기를 취소합니다.
metadata: deploymentSettings: disableUpdateDay2Action: true hideDisabledDay2Actions: true
- disableUpdateDay2Action이 true이면 작업 메뉴에 Update 2일차 작업이 표시되지 않습니다. 사용자에게 업데이트 권한이 없으면 옵션을 사용할 수 없는 것으로 나타납니다(흐리게 표시됨).
- hideDisabledDay2Actions가 true이면 사용자에 대해 비활성화된 2일차 작업이 작업 메뉴에 표시되지 않습니다.
업데이트 및 프로젝트 변경 2일차 작업은 다음 예에서 숨겨집니다.
변수 템플릿 규격을 사용하는 방법
템플릿 내에서 여러 번 재사용되는 값(예: 동적 구성)을 지정하려면
variables를 사용합니다. 변수 정의에는 일반 문자열, 입력이 포함될 수 있으며 기타 변수를 참조할 수 있습니다. 템플릿의 리소스 및 출력 섹션에서 정의한 변수를 참조합니다.
variables: applications: - name: App1 port: 3000 showAppInfo: true - name: App2 port: 4000 showAppInfo: false
출력 템플릿 규격을 사용하는 방법
outputs를 사용하여 사용자가 사용할 수 있도록 하려는 배포 정보를 정의합니다. 모든 출력은 배포 세부 정보 페이지에 사용자 이벤트 아래에 표시되지만, __deploymentOverview 값은 배포 개요 아래에 나타납니다.
outputs 예에는 다음이 포함됩니다.
- variables - 변수 템플릿 규격에 정의됨
- resources - 리소스 섹션에 정의되고 다음 코드 샘플에 포함됨
- __deploymentOverview - 마크다운으로 작성됨
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}
다음 구문 예제는
__deploymentOverview에 제공됩니다.
- if 구문은 부울 입력을 기반으로 하는 조건식입니다.
%{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에 대해 if 조건이 평가되고 변수 값이 할당되어 출력으로 표시됩니다.
%{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}
- 핸들바 표현식에서 실제 값이 변경되면 변수 바인딩이 동적으로 업데이트됩니다. 변수는 이중 중괄호 {{}}로 묶여 있으며 이 예에서는 표현식이 점으로 구분된 경로입니다.
secret 1 name - {{resource.secret-data1.object.metadata.resourceVersion}}
템플릿 규격이 UI에 표시되는 위치
정의한
outputs는 배포에 표시됩니다.
- __deploymentOverview는 배포 개요에 나타나는 특수한 종류의 출력입니다.
- secret1name 및 secret2name과 같은 다른 모든 출력은 사용자 이벤트 탭 아래 배포에 나타납니다.