로컬에서 카탈로그 매니페스트 편집

카탈로그 매니페스트 파일은 카탈로그를 통해 사용자와 공유하고자 하는 온보딩된 솔루션에 대한 정보를 명시합니다. 라이선스 및 규정 준수 정보를 제공하고, 특정 설정을 지정하고, 제품의 의도된 용도에 대한 설명을 제공할 수 있습니다.

콘솔을 사용하여 카탈로그 세부 정보를 편집하고 싶으신가요? 제공된 마법사를 실행한 다음 매니페스트 파일을 내보냅니다 에 따라 소스 리포지토리에 추가할 항목을 선택할 수 있습니다. 프로젝트에서 배포 가능한 아키텍처를 스택하는 경우 프로젝트에서 비공개 카탈로그에 아키텍처를 추가하면 카탈로그 매니페스트가 자동으로 생성됩니다.

카탈로그 세부 정보를 매니페스트 파일에 매핑하기

매니페스트 파일에 추가된 콘텐츠가 사용자에게 표시되는 방식을 시각화하는 데 도움이 되도록 ibm_catalog.json 와 카탈로그 세부 정보 페이지 간의 관계를 보여주는 다음 예제를 참조하세요.

배포 가능한 아키텍처 이름, 설명, 기능 및 변형이 카탈로그 매니페스트 파일에 정의되는 방식과 카탈로그 세부 정보 페이지에서 사용자에게 정보가 표시되는 방식을 살펴 보겠습니다.

배포 가능한 아키텍처 제목, 설명, 소스 파일에 대한 기능 텍스트 매핑
배포 가능한 아키텍처 제목, 설명, 소스 파일에 대한 기능 텍스트 매핑

카탈로그 매니페스트 파일에 정의된 방식에 따라 사용자가 이형 상품 기능 목록을 사용하여 이형 상품을 비교하는 방법을 살펴 보겠습니다.

배포 가능한 아키텍처 변형 기능 비교
배포 가능한 아키텍처 변형 기능 비교

카탈로그 매니페스트 파일에서 권한 및 아키텍처 다이어그램 세부 정보가 지정되는 위치와 카탈로그 세부 정보 페이지에 표시되는 방식을 살펴보겠습니다.

소스 파일에 배포 가능한 아키텍처 권한 및 아키텍처 텍스트 매핑
소스 파일에 배포 가능한 아키텍처 권한 및 아키텍처 텍스트 매핑

또한 아키텍처가 인벤토리 결과를 통해 확인된 특정 수준의 규정 준수를 충족하는 경우 Workload Protection 을 사용하여 변형별로 해당 규정 준수를 주장할 수 있습니다. Workload Protection 정책을 지정하여 ibm_catalog.json 파일에서 아키텍처가 특정 수준의 규정 준수를 충족하는 방법을 정의합니다. 또한 아키텍처에서 생성하는 리소스를 배포해야 하는데, Workload Protection 에서는 배포된 리소스를 사용하여 규정 준수 여부를 확인합니다. 자세한 내용은 배포 가능한 아키텍처에 대한 규정 준수 정보 관리하기를 참조하세요.

다음 예제에서는 매니페스트 파일에 정의된 규정 준수 정보가 사용자에게 표시되는 방법을 참조하세요.

배포 가능한 아키텍처 규정 준수
배포 가능한 아키텍처 규정 준수

매니페스트 편집

매니페스트를 로컬에서 편집하려면 다음 단계를 따르세요.

  1. 다음 예제 매니페스트 파일을 로컬 편집기에 복사합니다.
  2. ibm_catalog.json 파일의 이름입니다.
  3. 예제 매니페스트를 가이드로 사용하여 원하는 구성을 파일에 추가하세요. 각 값에 대해 자세히 알아보려면 사용 가능한 값을 확인하세요.
  4. 소스 코드 저장소의 루트 폴더에 파일을 추가합니다.
  5. 배포 가능한 아키텍처를 카탈로그에 추가하세요.

배포 가능한 아키텍처가 이미 비공개 카탈로그에 온보딩되어 있는 경우 콘솔에서 매니페스트를 다운로드할 수 있습니다.

매니페스트 파일 예시

다음 코드 스니펫을 템플릿으로 사용할 수 있습니다.

{
   "products": [
      {
         "name": "",
         "label": "",
         "product_kind": "",
         "tags": [
            "tag 1",
            "tag 2"
         ],
         "keywords": [
            "keyword 1",
            "keyword 2",
            "keyword 3"
         ],
         "short_description": "Short description of your product.",
         "long_description": "A longer description of your product.",
         "offering_docs_url": "URL",
         "offering_icon_url": "URL or emebbed image",
         "provider_name": "Community",
         "module_info": {
            "works_with": [
               {
                  "catalog_id": "",
                  "name": "module name",
                  "kind": "terraform",
                  "version": "0.1.0",
                  "flavor": "Variation name"
               }
            ]
         },
         "support_details": "Explanation of support.",
         "features": [
            {
               "title": "Feature 1 title"
               "description": "Feature 1 description"
            },
            {
               "title": "Feature 2 title"
               "description": "Feature 2 description"
            }
         ],
         "flavors": [
            {
               "label": "Display name",
               "name": "Programatic name",
               "index": 1,
               "install_type": "Install type",
               "working_directory": "Directory path",
               "usage_template": "template",
               "scripts": [
                  {
                     "type": "ansible",
                     "short_description": "Short description of what your script is intended to do.",
                     "path": "Path to script location.",
                     "stage": "The stage. For example, pre.",
                     "action": "The action. For example, validate."
                  }
               ],
               "change_notices": {
                  "breaking": [
                     {
                        "title": "Title of breaking change",
                        "description": "Description of the change."
                     }
                  ],
                  "new": [
                     {
                        "title": "Title of new feature",
                        "description": "Description of the new feature or capability."
                     }
                  ],
                  "update": [
                     {
                        "title": "Title of general update",
                        "description": "Description of the general update."
                     }
                  ]
               },
               "compliance": {
                  "authority": "scc-v3",
                  "controls": [
                     {
                        "profile": {
                           "name": "Security and Compliance Center profile name",
                           "version": "Profile version"
                        },
                        "names": [
                           "Control name 1 e.g. AC-2(a)",
                           "Control name 2",
                           "Control name 3"
                        ]
                     }
                  ]
               },
               "configuration": [
                  {
                     "key": "key type e.g. ssh_key",
                     "required": true
                  },
                  {
                     "key": "Key type e.g. ibmcloud_api_key",
                     "required": true,
                     "type": "The data type"
                  }
               ],
               "outputs": [
                  {
                     "description": "Output description",
                     "key": "key"
                  },
                  {
                     "description": "Output description",
                     "key": "key"
                  }
               ],
               "dependencies": [
                  {
                     "catalog_id": "ID",
                     "id": "ID",
                     "name": "Product programmatic name",
                     "kind": "Format kind",
                     "version": "Versions or range of versions",
                     "flavors": [
                        "Variation name 1",
                        "Variation name 2",
                        "Variation name 3"
                     ],
                     "install_type": "fullstack or extension",
                  }
               ],
               "iam_permissions" [
                  {
                     "role_crns": [
                        "CRN 1 e.g. crn:v1:bluemix:public:iam::::serviceRole:Manager",
                        "CRN 2 e.g. crn:v1:bluemix:public:iam::::role:Administrator"
                     ],
                     "service_name": "Programatic service name e.g. is.vpc"
                  }
               ],
               "licenses": [
                  {
                     "name": "License name",
                     "smref": "Link to the license"
                  }
               ],
               "schematics_env_values": {
                  "value": "value",
                  "smref": " "
               },
               "architecture": {
                  "descriptions": " ",
                  "features": [
                     {
                        "title": "Feature 1 title",
                        "description": "Feature 1 description"
                     },
                     {
                        "title": "Feature 1 title",
                        "description": "Feature 1 description"
                     }
                  ],
                  "diagram": {
                     "caption": "Diagram caption",
                     "url": "Link to diagram or embedded image",
                     "metadata": []
                  },
                  "description": "Description of the diagram"
               }
            }
         ]
      }
   ]
}

사용 가능한 값

다음 섹션에는 매니페스트 파일에서 참조할 수 있는 각 값에 대한 정보가 포함되어 있습니다.

제품

제품 값은 크기가 1 이상인 제품 배열을 나타냅니다. 카탈로그 매니페스트 파일이 저장소 루트에 있는 경우 파일 내의 제품만 가져올 수 있습니다. 제품은 한 번에 하나씩 가져옵니다. products 수준에서 다음 값을 포함할 수 있습니다:

label

제품 표시 이름입니다. 이 값은 온보딩 시 제공한 표시 이름과 일치해야 합니다.

name

제품의 프로그래밍 이름입니다.

hidden

제품 표시 여부를 제어하는 부울 값입니다. true 으로 설정하면 카탈로그 및 검색 결과에서 제품이 숨겨지지만 직접 URL 을 통해 계속 사용할 수 있습니다.

version

주 버전, 부 버전 및 개정판을 포함한 SemVer 형식의 제품 버전(예: 1.0.0 ). 이 값은 제품을 카탈로그에 온보딩할 때도 지정할 수 있습니다.

product_kind

귀사가 도입 중인 제품의 종류. 유효한 값은 소프트웨어, 모듈 또는 솔루션입니다. 솔루션은 배포 가능한 아키텍처라고도 합니다.

tags

사용자가 카탈로그를 필터링하여 제품을 식별하고 자세히 알아볼 수 있도록 도와주는 미리 정의된 값의 배열입니다. 사용 가능한 옵션을 보려면 다음 명령을 실행하세요: ibmcloud catalog filter options --all.

keywords

사용자가 검색하려고 할 수 있는 특정 단어나 구문의 배열입니다.

short_description

제품이 무엇이며 그 가치가 무엇인지 간결하게 요약합니다.

long_description

사용자에게 제품의 가치와 이점을 설명하는 제품에 대한 자세한 설명입니다.

provider_name

사용자는 제품 공급업체별로 카탈로그를 필터링할 수 있습니다. 비공개 카탈로그에 제품을 온보딩하는 경우 공급자 이름은 기본적으로 Community 로 설정됩니다. 그러나 이 필드를 사용자 지정하여 회사 또는 조직 이름을 표시할 수 있습니다. IBM 는 예약된 값이며 IBM 빌드 제품에만 사용할 수 있습니다.

offering_docs_url

사용자가 액세스할 수 있는 제품에 대한 문서 링크입니다.

offering_icon_url

제품의 카탈로그 항목 페이지에 표시할 아이콘이 있는 URL 링크입니다.

support_details

지원 연락처, 지원 위치 및 지원 방법을 포함할 수 있는 마크다운 형식의 지원 정보입니다.

features

products 내 섹션 헤더에서 제품의 프로세스, 기능 및 결과를 강조하는 세부 정보를 확인할 수 있습니다. 이러한 제품 수준 기능은 제품 설명과 함께 카탈로그 항목 페이지에 나열됩니다. 예를 들어, 기능에는 CPU 요구 사항, 보안 기능 등이 포함될 수 있습니다. 각 항목은 이전 섹션의 매니페스트 예시에 표시된 대로 배열로 정의됩니다. features 섹션에 포함할 수 있는 값은 다음과 같습니다:

features[].title
기능의 이름입니다.
features[].description
기능에 대한 간결한 설명입니다.

모듈

module_info 값은 배포 가능한 아키텍처가 호환되는 다른 제품에 대한 정보를 나타냅니다. module_info 섹션에 포함할 수 있는 값은 다음과 같습니다:

works_with

배포 가능한 아키텍처와 호환되는 단일 제품에 대한 정보를 제공하는 섹션 헤더입니다. works_with 섹션에 포함할 수 있는 값은 다음과 같습니다:

works_with[].catalog_id(선택사항)
제품을 보관하고 있는 카탈로그의 ID입니다. 지정하지 않으면 IBM Cloud 카탈로그가 기본값으로 사용됩니다.
works_with[].id(선택사항)
제품의 ID입니다. name 값이 설정된 경우 ID는 필요하지 않습니다.
works_with[].name(선택사항)
배포 가능한 아키텍처와 함께 작동하는 제품의 프로그래밍 방식 이름입니다.
works_with[].kind
배포 가능한 아키텍처에서 작동하는 모듈의 형식입니다. 대부분 terraform 입니다.
works_with[].version
배포 가능한 아키텍처에서 작동하는 제품 버전 또는 범위( SemVer 형식)입니다.
works_with[].flavors[](선택사항)
호환되는 변형의 프로그램 이름입니다. 변형은 카탈로그에 개별적으로 온보딩되며 버전 번호가 부여됩니다. 변형 이름의 예는 standard 또는 advanced 입니다.

특성

섹션 헤더에서 배포 가능한 아키텍처 변형에 대한 정보를 확인할 수 있습니다. 이제 플레이버는 콘솔에서 베리에이션으로 알려져 있습니다. flavors 수준에서 다음 값을 포함할 수 있습니다:

label

변형 표시 이름.

name

변형 프로그램 이름.

short_description

이 버전의 변형에 대한 간단한 설명입니다.

index

카탈로그 목록에 이형 상품이 나열되는 순서입니다.

working_directory

리포지토리의 루트 레벨에 있는 작업 디렉터리의 경우 작업 디렉터리를 지정할 필요가 없습니다. 루트에 없는 경우 리포지토리의 루트에서 경로를 나열합니다. 예를 들어, ./examples/입니다.

usage

아키텍처를 임베드하거나 Terraform을 통해 로컬에서 실행하는 방법에 대한 정보입니다.

usage_template

usage 와 유사합니다. 템플릿을 사용하면 변수를 값을 대체할 수 있는 자리 표시자로 사용할 수 있습니다. 문자열은 usage 속성에 저장됩니다.

사용 템플릿 값 및 설명
템플릿 변수 대체 값
${{version}} 이 변형 또는 플레이버의 버전 문자열입니다.
${{flavor}} 이형 상품 또는 맛의 프로그래밍 방식 이름입니다.
${{kind}} 구현 종류. I.e. terraform.
${{id}} 오퍼링 또는 제품 ID입니다.
${{name}} 해당 상품 또는 제품의 프로그램명.
${{catalogID}} 해당 오퍼링 또는 제품이 속한 카탈로그의 ID입니다.
${{workingDirectory}} 플레이버 또는 변형의 작업 디렉터리입니다.

licenses

사용자가 제품을 설치할 때 동의해야 하는 최종 사용자 라이선스 계약에 대한 정보를 제공하는 flavors 섹션 내 섹션 헤더입니다. 라이센스 계약은 IBM Cloud 서비스 계약에 추가됩니다.

{
	"id": "string, license id",
	"name": "string, license display name",
	"type": "string, type of license, e.g. Apache xxx",
	"url": "string, URL for the license text",
	"description": "string, license description"
}

licenses 섹션에 포함할 수 있는 값은 다음과 같습니다:

licenses[].id
라이선스 ID입니다.
licenses[].name
라이센스의 이름입니다.
licenses[].type
라이센스의 유형입니다. 예: Apache.
licenses[].url
사용자가 라이선스 계약에 액세스할 수 있는 URL.
licenses[].description
라이선스에 대한 설명입니다.

compliance

아키텍처가 기본 설치 설정으로 어떤 규정 준수 제어를 충족하는지 나타내는 flavors 섹션 내의 섹션 헤더입니다. 청구에 대한 평가 및 검증은 Workload Protection 에서 완료합니다.

다음 예는 compliance 섹션의 JSON 구조를 보여줍니다:

"flavors": [{
  "compliance": {
    "authority": "scc-wp-v1",
    "profiles": [{
      "profile_name": "",
      "profile_version": ""
    }],
    "controls": [{
      "profile": {
        "name": "",
        "version": ""
      },
      "names": []
    }]
  }
}]

카탈로그 매니페스트 JSON 파일에 여러 정책을 나열할 수 있지만, 비공개 카탈로그의 준수 정보에는 첫 번째 정책만 추가됩니다.

compliance 섹션에 포함할 수 있는 값은 다음과 같습니다:

compliance.authority
Workload Protection v1 유일한 권한이 허용됩니다. 프로그래밍 방식은 scc-wp-v1 으로 작성됩니다.
compliance.profiles[]
요청 중인 컨트롤이 포함된 정책의 배열입니다. Workload Protection 에서 미리 정의된 정책을 확인할 수 있습니다.
compliance.profiles[].profile_name
정책의 이름입니다. 예를 들어, NIST입니다. 정책 이름은 Workload Protection 에서 찾을 수 있습니다.
compliance.profiles[].profile_version
정책의 버전입니다. 예를 들어, 1.0.0입니다. 정책 버전은 Workload Protection 에서 확인할 수 있습니다.
compliance.controls[]
이 배리에이션에 청구된 컨트롤의 배열입니다. 카탈로그 매니페스트는 컨트롤의 프로필 이름, 프로필 버전 및 컨트롤 이름을 지정하여 클레임할 수 있는 컨트롤 배열을 허용합니다.
compliance.controls[].profile
특정 정책의 컨트롤을 추가하고 있음을 나타내는 개체입니다.
compliance.controls[].profile.name
청구된 제어의 정책 이름입니다. 예를 들어, NIST입니다. 정책 이름은 Workload Protection 에서 찾을 수 있습니다.
compliance.controls[].profile.version
정책의 버전입니다. 예를 들어, 1.0.0입니다. 정책 버전은 Workload Protection 에서 확인할 수 있습니다.
compliance.controls[].names[]
청구된 컨트롤 이름의 배열입니다. 예: ["CM-7(b)", "AC-2(a)"].

readme 및 카탈로그 매니페스트 파일에 컨트롤을 포함한 경우 매니페스트 파일이 우선적으로 적용됩니다. 카탈로그 매니페스트 파일에 나열된 컨트롤이 readme 파일에 있는 컨트롤과 일치하는지 확인하는 것이 모범 사례입니다.

change_notices(선택사항)

배포 가능한 아키텍처의 새 버전을 릴리스할 때 사용자에게 알릴 수 있는 세 가지 유형의 변경 사항 목록입니다. breaking changes, new features, general updates 을 지정할 수 있습니다. 브레이킹 변경은 이전 버전에서 사용할 수 있었던 기능을 중단하는 업데이트입니다. 새로운 기능은 사용자가 새 버전에서 접할 수 있는 새로운 기능을 강조 표시합니다. 업데이트에는 기존 기능을 손상시키지 않는 수정된 동작이나 배포 가능한 아키텍처를 더 쉽게 사용할 수 있도록 하는 변경 사항 등 사용자에게 강조하고 싶은 모든 변경 사항이 포함됩니다.

"change_notices": {
   "breaking": [
      {
         "title": "",
         "description": ""
      }
   ],
   "new_features": [
      {
         "title": "",
         "description": ""
      }
   ],
   "updates": [
      {
         "title": "",
         "description": ""
      }
  ]
}

iam_permissions(선택사항)

사용자가 배포 가능한 아키텍처 버전으로 작업하는 데 필요한 모든 IAM 권한 목록의 섹션 헤더입니다. IAM 권한 정보에는 필요한 서비스의 프로그램 이름과 필요한 역할에 대한 CRN 목록이 포함됩니다. UI에서 카탈로그 매니페스트 파일을 빌드하는 경우 CRN이 이미 포함되어 있습니다.

다음 예는 iam_permissions 섹션의 JSON 구조를 보여줍니다:

"flavors": [{
  "iam_permissions": [{
    "service_name": "IAM defined service name",
    "notes": "Optional notes about this permission",
    "role_crns": ["crn:v1:..."],
    "resources": [{
      "name": "resource name",
      "description": "resource description",
      "role_crns": ["crn:v1:..."]
    }]
  }]
}]

iam_permissions 섹션에 포함할 수 있는 값은 다음과 같습니다:

iam_permissions[].service_name
사용자가 액세스 권한이 있어야 하는 서비스의 프로그래밍 방식 이름입니다.
iam_permissions[].notes(선택사항)
이 역할에 대한 자세한 정보 또는 해당 역할이 포함된 이유를 사용자에게 제공합니다. 예를 들어, 다음과 같습니다. This role is only required if you are using IBM Key Protect for encryption.
iam_permissions[].role_crns[]
섹션 헤더에 액세스 역할 목록을 표시합니다.
iam_permissions[].resources[]
권한에 대한 리소스 배열입니다.
iam_permissions[].resources[].name
자원의 이름입니다.
iam_permissions[].resources[].description
자원의 설명입니다.
iam_permissions[].resources[].role_crns[]
섹션 헤더에 액세스 역할 목록을 표시합니다.

architecture

설명, 기능 및 다이어그램을 포함하는 배포 가능한 아키텍처 버전에 대한 높은 수준의 정보를 지정하는 flavors 섹션 내의 섹션 헤더입니다. 캡션이 포함된 여러 개의 다이어그램을 제공할 수 있습니다.

다음 예는 architecture 섹션의 JSON 구조를 보여줍니다:

"flavors": [{
  "architecture": {
    "features": [{
      "title": "",
      "description": ""
    }],
    "diagrams": [{
      "diagram": {
        "caption": "",
        "url": "",
        "type": "image/svg+xml",
        "thumbnail_url": ""
      },
      "description": ""
    }]
  }
}]

architecture 섹션에 포함할 수 있는 값은 다음과 같습니다:

architecture.features[]
해당 버전 또는 해당되는 경우 아키텍처 변형의 프로세스, 기능 및 결과를 강조하는 정보 모음. 콘솔을 사용하여 온보딩하는 경우 이러한 세부 정보를 하이라이트라고 합니다. 이러한 세부 정보는 카탈로그 항목 내의 이형 상품 선택 상자에 표시됩니다. 제품에 여러 가지 아키텍처 버전이 있는 경우, 사용자는 각 버전의 기능을 비교하여 자신의 요구 사항에 맞는 버전을 선택할 수 있습니다.
architecture.features[].title
기능의 이름입니다.
architecture.features[].description
해당 기능에 대한 설명.
architecture.diagrams[]
다이어그램 캡션, 다이어그램의 SVG를 포함하는 URL, 요소 ID 및 요소 설명과 같은 다이어그램 메타데이터, 참조 아키텍처에 대한 설명을 포함하는 아키텍처 다이어그램의 배열입니다.
architecture.diagrams[].diagram
단일 아키텍처 다이어그램에 대한 정보가 포함된 객체입니다.
architecture.diagrams[].diagram.url
URL 을 다이어그램의 SVG로 변환합니다. SVG를 삽입할 수도 있습니다.
architecture.diagrams[].diagram.api_url
카탈로그 관리 API URL 를 다이어그램에 추가합니다.
architecture.diagrams[].diagram.url_proxy
프록시된 이미지에 대한 정보가 포함된 객체입니다.
architecture.diagrams[].diagram.url_proxy.url
프로キシ된 이미지에 대한 URL.
architecture.diagrams[].diagram.url_proxy.sha
이미지의 sha 식별자입니다.
architecture.diagrams[].diagram.caption
아키텍처 다이어그램의 짧은 레이블입니다.
architecture.diagrams[].diagram.type
미디어 유형입니다.
architecture.diagrams[].diagram.thumbnail_url
다이어그램의 썸네일 링크입니다.
architecture.diagrams[].description
시스템의 개요와 배포 가능한 아키텍처의 구성 요소 간의 관계, 제약 조건 및 경계를 포함한 전체 아키텍처 다이어그램에 대한 정보입니다.

dependencies

배포 가능한 아키텍처와 호환되는 제품 목록은 flavors 섹션 헤더에서 확인할 수 있습니다. 종속성은 필수 또는 선택 사항일 수 있습니다. 여기에 포함된 종속성은 swappable_dependencies 섹션에도 추가할 수 없습니다. 정보에는 제품의 프로그램 이름과 제품 버전이 포함됩니다. 선택 사항으로 카탈로그 ID와 종속 변형 목록을 포함할 수 있습니다.

다음 예는 dependencies 섹션의 JSON 구조를 보여줍니다:

"flavors": [{
  "dependencies": [{
    "catalog_id": "catalog ID",
    "id": "offering ID",
    "name": "offering name",
    "kind": "terraform",
    "version": "SemVer version e.g. 3.1.2",
    "flavors": ["flavor name"],
    "install_type": "fullstack or extension",
    "optional": true,
    "description": "Description of optional dependency",
    "on_by_default": false,
    "input_mapping": [{
      "dependency_output": "kms_instance_crn",
      "version_input": "existing_kms_instance_crn"
    }]
  }]
}]

배포 가능한 아키텍처를 카탈로그에 온보딩할 때 종속성을 충족하는 필수 아키텍처와 자체 아키텍처와 함께 작동하는 선택 아키텍처에 대한 정보를 제공할 수 있습니다. 자세한 내용은 온보딩 중 배포 가능한 아키텍처 확장하기를 참조하세요.

dependencies 섹션에 포함할 수 있는 값은 다음과 같습니다:

dependencies[].catalog_id(선택사항)
제품을 보관하고 있는 카탈로그의 ID입니다. 지정하지 않으면 IBM Cloud 카탈로그가 기본값으로 사용됩니다.
dependencies[].id(선택사항)
제품 ID입니다. name 값이 설정된 경우 ID는 필요하지 않습니다.
dependencies[].name(선택사항)
제품의 프로그래매틱 명칭.
dependencies[].kind
종속성의 형식 종류입니다. 스택 구성 파일이 있는 그룹화된 배포 가능한 아키텍처로 구성된 배포 가능한 아키텍처의 경우 stack 을 사용하세요. 하나 이상의 모듈로만 구성된 배포 가능한 아키텍처의 경우 terraform 을 사용하세요.
dependencies[].version
종속성으로 포함할 버전 또는 버전 범위( SemVer 형식)입니다.
dependencies[].flavors[](선택사항)
아키텍처가 호환되는 이형 상품 이름의 배열입니다.
dependencies[].default_flavor(선택사항)
여러 변형이 아키텍처와 호환되거나 아키텍처 배포에 필요한 경우 사용자를 위해 선택되는 기본 변형을 지정합니다. flavors 속성에 포함된 경우 사용자가 다른 변형을 선택할 수 있습니다. 이 값은 변동의 평균 제곱근( name )입니다. 이 속성을 사용하려면 dependency_version_2true 로 설정해야 합니다. 설정하지 않으면 사용자에게 기본 변형이 제공되지 않습니다.
dependencies[].optional
종속성이 필요한지 필요하지 않은지 지정합니다. 기본값은 false입니다. 이 속성을 사용하려면 dependency_version_2true 로 설정해야 합니다.
dependencies[].description(선택사항)
사용자가 더 넓은 솔루션 내에서 해당 아키텍처가 어떻게 작동하는지, 왜 해당 아키텍처를 포함해야 하는지 이해할 수 있도록 귀사의 아키텍처와 호환되는 선택적 아키텍처에 대한 설명을 제공하세요. 이 속성을 사용하려면 dependency_version_2true 로 설정해야 합니다.
dependencies[].on_by_default
사용자가 카탈로그에서 프로젝트에 배포 가능한 아키텍처를 추가할 때 선택적 종속성을 선택할지 여부를 지정합니다. 사용자가 원하지 않는 경우 아키텍처를 선택 해제할 수 있습니다. 기본값은 false입니다. 이 속성을 사용하려면 dependency_version_2optionaltrue 로 설정해야 합니다.
dependencies[].input_mapping[](선택사항)
호환되는 아키텍처와 온보딩 중인 아키텍처 간에 참조되는 값을 지정하는 배열입니다. 이 속성을 사용하려면 dependency_version_2true 로 설정해야 합니다.
dependencies[].input_mapping[].dependency_output 또는 dependencies[].input_mapping[].dependency_input (선택 사항)
온보딩하려는 아키텍처가 참조하는 종속성에서 변수를 지정합니다. 값은 종속성의 변수 이름입니다. 이 두 가지 속성 중 하나만 제공해야 합니다. reference_versiontrue 으로 설정된 경우 이 변수는 온보딩 중인 아키텍처의 version_input 변수를 참조합니다.
dependencies[].input_mapping[].version_input(선택사항)
온보딩 중인 아키텍처에서 dependency_output 또는 dependency_input 값을 참조하는 입력 변수의 이름을 지정합니다. reference_versiontrue 으로 설정된 경우 dependency_input 변수는 온보딩 중인 아키텍처의 version_input 변수를 참조합니다.
dependencies[].input_mapping[].value(선택사항)
온보딩 중인 아키텍처(version_input) 또는 해당 종속성(dependency_input)의 입력에 대한 사전 설정 값을 지정합니다. 여기에 지정된 값은 version_input 또는 dependency_input 이 제공되고 dependency_output 이 제공되지 않는 경우에만 사용됩니다. version_input 을 제공하면 사용자가 아키텍처와 해당 종속성을 프로젝트에 추가할 때 아키텍처의 version_input 은 여기에 지정된 값으로 미리 설정됩니다. dependency_input 을 제공하면 사용자가 아키텍처와 해당 종속성을 프로젝트에 추가할 때 종속성의 dependency_input 이 여기에 지정된 값으로 미리 설정됩니다.
dependencies[].input_mapping[].reference_version(선택사항)
온보딩 중인 아키텍처와 해당 종속성 간의 참조 흐름을 나타냅니다. 기본값은 false입니다. 기본 동작은 아키텍처 입력(version_input)이 종속성(dependency_input 또는 dependency_output)의 입력 또는 출력 중 하나를 참조하는 것입니다. 이 플래그가 true 로 설정되면 dependency_inputversion_input 의 값을 참조합니다.

dependency_version_2(선택사항)

dependencies 섹션에 피어, dependency_version_2 이 배포 가능한 아키텍처에서 업데이트된 종속성 처리를 사용하도록 지정합니다. optional 속성 또는 dependencies 섹션 내의 input_mapping 섹션을 사용하는 경우 이 값을 true 으로 설정합니다. 그렇지 않다면, false 로 설정하십시오. 이 속성이 true 로 설정된 경우 optional 속성이 false 로 설정된 모든 종속성은 온보딩 중인 아키텍처를 배포하는 데 필요합니다.

swappable_dependencies(선택사항)

배포 가능한 아키텍처와 호환되는 제품 목록에 대한 섹션 헤더입니다. dependencies 배열과 달리 이 섹션의 제품은 교체할 수 있습니다. 사용자는 종속성을 충족하기 위해 사용할 제품을 선택할 수 있습니다. 스왑 가능한 종속성은 필수 또는 선택 사항일 수 있습니다. 여기에 포함된 종속성은 dependencies 배열에도 추가할 수 없습니다. 정보에는 제품의 프로그램 이름과 제품 버전이 포함됩니다. 선택 사항으로 카탈로그 ID와 종속 변형 목록을 포함할 수 있습니다. 이 속성을 사용하려면 dependency_version_2true 로 설정해야 합니다.

{
  "optional": "true or false",
  "name": "Name for this group of swappable dependencies",
  "default_dependency": "the name of the dependency that is selected by default",
  "dependencies": [
    {
      	"name": "offering name",
      	"id": "offering ID",
      	"kind": "terraform",
      	"version": "SemVer version e.g. 3.1.2",
      	"flavors": [
           "flavor name"
        ],
      	"install_type": "fullstack or extension",
      	"catalog_id": "catalog ID",
      	"input_mapping": [
        {
            "dependency_output": "kms_instance_crn",
            "version_input": "existing_kms_instance_crn"
        }
        ]
    },
    {
      	"name": "offering name",
      	"id": "offering ID",
      	"kind": "terraform",
      	"version": "SemVer version e.g. 3.1.2",
      	"flavors": [
           "flavor name"
        ],
      	"install_type": "fullstack or extension",
      	"catalog_id": "catalog ID",
      	"input_mapping": [
        {
            "dependency_output": "kms_instance_crn",
            "version_input": "existing_kms_instance_crn"
        }
        ]
    }
  ]
}

swappable_dependencies 섹션에 포함할 수 있는 값은 다음과 같습니다:

swappable_dependencies[].name(선택사항)
아키텍처가 카탈로그에 온보딩되어 swappable_dependencies 의 특정 그룹을 식별하는 데 도움이 될 때 사용됩니다.
swappable_dependencies[].default_dependency(선택사항)
기본적으로 사용자에 대해 선택된 그룹 내 종속성 중 하나의 name.
swappable_dependencies[].dependencies
이 그룹 내에서 스왑 가능한 종속성의 배열입니다. 이 배열 내의 값은 문서화된 값과 동일합니다 dependencies 섹션에 문서화된 값과 동일합니다.

release_notes_url

URL 를 아키텍처의 릴리스 노트에 추가하세요.

configuration

특정 변형을 위한 배포 변수의 구성을 지정하는 flavors 섹션 내의 섹션 헤더입니다. 카탈로그 데이터 유형은 기본 유형을 확장하고 IBM Cloud 콘솔에서 작업할 때 더 나은 사용자 경험을 제공하는 데 사용됩니다. 로컬 컴퓨터나 다른 환경에서 코드를 실행하는 경우 변수는 사용되지 않습니다. 예를 들어, string 유형으로 정의된 Terraform 변수의 기능을 확장하는 데 사용되는 password 카탈로그 유형이 UI에서 민감한 것으로 취급되도록 할 수 있습니다.

다음 예는 구성 섹션의 JSON 구조를 보여줍니다:

"flavors": [{
  "configuration": [{
    "key": "deployment_variable_name",
    "type": "string",
    "default_value": "default value",
    "description": "Description shown to users",
    "display_name": "Display Name",
    "required": true,
    "hidden": false,
    "options": ["option1", "option2"],
    "custom_config": {
      "type": "widget_id",
      "grouping": "Target",
      "grouping_index": 1
    },
    "value_constraints": [{
      "type": "regex",
      "value": "^.{12,30}$",
      "description": "Must be between 12 and 30 characters"
    }]
  }]
}]

configuration 섹션에 포함할 수 있는 값은 다음과 같습니다:

configuration[].key

구성 키입니다. 이 값은 배포 변수의 이름과 일치해야 합니다.

configuration[].type

고객이 정의하거나 선택할 수 있는 입력 유형입니다. 데이터 유형은 카탈로그 관리 서비스에서 지원해야 합니다. 기본 테라폼 유형은 지원되는 일부 유형에 매핑됩니다. 예를 들어, 테라폼 유형 mapobject 과 동일합니다. 테라폼 유형 listarray 과 동일합니다. 민감한 속성을 가진 테라폼 유형 stringpassword 과 동일합니다. 배포 가능한 아키텍처를 사용하는 고객은 카탈로그 매니페스트에서 정의한 입력 유형에 대한 값을 제공해야 합니다.

지원되는 사전 정의된 유형:

  • boolean 는 사용자가 true 또는 false 문자열을 입력해야 합니다.
  • float 는 사용자에게 소수점 이하 소수점을 요구합니다.
  • int 는 사용자가 정수를 입력해야 합니다.
  • number 에는 숫자 값이 필요합니다. number 유형은 4.56 과 같이 정수와 분수 값을 모두 나타낼 수 있습니다.
  • password 는 사용자가 문자열을 입력해야 합니다. 콘솔과 로그에서 문자열이 삭제됩니다.
  • string 에는 텍스트를 나타내는 일련의 유니코드 문자가 필요합니다. 접두사로 추가할 임의의 문자열을 선택적으로 포함할 수 있으므로 접두사 또는 기본 이름으로 사용되는 문자열의 이름 충돌을 방지하는 데 도움이 됩니다. 이 임의 문자열의 길이를 지정할 수도 있습니다. 생성된 문자열은 소문자, a-z, 특수 문자 없이 대시가 앞에 오는 문자열입니다(예: myString-wx). 기본값도 지정하면 접미사가 추가됩니다. 기본값을 지정하지 않으면 대시 문자가 없는 접미사가 값이 됩니다. 예를 들면 다음과 같습니다.
"random_string": {
	"length": 2
}
  • object 는 사용자의 테라폼 객체 입력이 필요합니다. 자세한 정보는 map의 내용을 참조하십시오.

미리 정의된 유형은 사용자가 수동으로 입력해야 합니다.

지원되는 사용자 지정 유형:

  • array 쉼표로 구분된 값 목록이 필요합니다.
  • region 를 사용하려면 드롭다운 목록에서 배포 가능한 아키텍처를 배포할 지역을 선택해야 합니다. 최종 사용자가 사용할 수 있는 지역을 필터링할 수 있습니다. 예를 들어, 지역 필터에 country_id:us,ca,jp 을 지정하여 사용 가능한 지역을 해당 국가로 제한할 수 있습니다. 자세한 내용은 필터링 구문을 참조하세요.
  • textarea 는 사용자가 여러 줄로 나눌 수 있는 텍스트를 입력해야 합니다. 예를 들어 설명이 있습니다.
  • vpc 를 사용하려면 사용자가 드롭다운 목록에서 이름으로 VPC를 선택해야 합니다. 출력은 템플릿에 필요한 VPC 이름 또는 ID입니다.
  • vpc ssh key 는 사용자가 가상 머신에 대한 인증을 위해 VPC SSH 키를 선택하도록 요구합니다.
  • cluster 는 사용자가 Kubernetes Service 또는 Red Hat OpenShift 클러스터를 선택해야 합니다. 출력은 클러스터 ID입니다.
  • power iaas 는 사용자가 Power Virtual Server 인스턴스를 선택해야 합니다.
  • resource group 는 사용자가 리소스 그룹을 선택하도록 요구합니다. 출력은 리소스 그룹의 ID, 이름 또는 CRN입니다.
  • multi-line secure value 는 사용자가 여러 줄로 나눌 수 있는 텍스트를 입력해야 하며, 이 텍스트는 콘솔과 로그에서 삭제됩니다. 예를 들어 긴 키가 필요한 경우 해당 값은 작업 영역에 숨겨집니다.
  • schematics workspace 는 사용자가 드롭다운 목록에서 특정 작업 공간을 선택하도록 요구합니다. 이 목록은 배포 가능한 아키텍처에 정의된 종속성에 따라 동적으로 필터링됩니다. 예를 들어 배포 가능한 아키텍처( example-da-1)가 다른 배포 가능한 아키텍처( example-da-2)에 종속된 경우 example-da-1 의 입력 드롭다운 목록에는 example-da-2 과 연결된 워크스페이스만 표시됩니다. 그런 다음 사용자는 example-da-1 을 설정할 때 example-da-2 의 워크스페이스 중 적절한 인스턴스를 선택합니다.
  • json editor 는 사용자가 더 큰 JSON 입력 또는 일반 텍스트 파일을 지정할 수 있는 공간을 제공합니다.
  • code editor 는 사용자에게 JSON 또는 HCL 형식의 입력을 선택할 수 있게 해주며, 이는 테라폼 기반 입력에 유용합니다.
  • Platform resource 를 사용하려면 사용자가 지정한 리소스 유형에 대한 목록에서 인스턴스 리소스를 선택해야 합니다. 리소스 유형은 VPC Subnet, VPC Image, VPC Floating IPs, Cloud Logs, Sysdig, Cloud Object Storage, Key Protect 또는 Secrets Manager 입니다. 사용자가 선택할 수 있는 값으로 ID, 이름 또는 CRN을 지정하고 단일 또는 다중 선택을 허용할 수 있습니다. 출력은 테라폼 코드에 필요한 이름 또는 ID입니다.
  • secret_group 는 사용자가 특정 Secrets Manager 인스턴스에서 이름으로 비밀 그룹을 선택하도록 요구합니다. 출력은 비밀 그룹의 ID 또는 이름입니다. 특정 Secrets Manager 인스턴스에서 그룹을 나열하려면 이 유형을 platform resource 사용자 지정 유형, 리소스 유형 Secrets Managercrn 값 유형 출력과 연결해야 합니다.
  • secret 는 사용자가 특정 Secrets Manager 인스턴스에서 이름으로 비밀을 선택하도록 요구합니다. 출력은 비밀의 ID, 이름 또는 CRN입니다. 특정 Secrets Manager 인스턴스의 비밀을 나열하려면 이 유형은 최소한 platform resource 사용자 지정 유형, 리소스 유형 Secrets Managercrn 값 유형 출력과 연결되어야 합니다. 선택적으로 secret_group 유형과 id 값 유형 출력과 연결하여 해당 Secrets Manager 인스턴스의 특정 비밀 그룹에 있는 비밀을 나열할 수 있습니다.
  • kms_key 를 사용하려면 사용자가 특정 Key Protect 인스턴스에서 키를 선택해야 합니다. 출력은 키의 ID, 이름 또는 CRN입니다. 특정 Key Protect 인스턴스의 키를 나열하려면 이 유형은 platform resource 사용자 지정 유형, 리소스 유형 Key Protectcrn 값 유형 출력과 연결해야 합니다.
configuration[].default_value

기본값으로 설정할 값입니다.

configuration[].virtual(선택사항)

입력을 Schematics 서비스로 전달할지 여부를 지정하는 플래그입니다. true 로 설정하면 입력이 Schematics 으로 전달되지 않습니다. 배포 가능한 아키텍처 내에서 호환되는 아키텍처에서는 참조되지만 온보딩 중인 배포 가능한 아키텍처에서는 사용되지 않는 입력에 대해 이 플래그를 true 으로 설정하세요. input_mapping 에 참조를 추가하고 dependencies 또는 swappable_dependencies 섹션에 추가합니다.

configuration[].description

배포 가능한 아키텍처의 사용자를 위해 UI에 표시할 변수에 대한 설명입니다.

configuration[].display_name

구성 유형에 대해 표시되는 이름입니다.

configuration[].required

설치 중에 사용자가 매개변수를 지정해야 하는지 여부를 나타내는 부울입니다.

configuration[].hidden

설치 중에 매개변수를 사용자에게 숨길지 여부를 나타내는 부울입니다.

configuration[].options[]

사용자가 매개변수에 대해 선택할 수 있는 옵션의 배열입니다.

configuration[].custom_config

사용자 지정 구성을 사용할 수 있음을 나타내는 개체입니다.

configuration[].custom_config.type

구성에 사용되는 위젯 유형의 ID입니다.

configuration[].custom_config.grouping

카탈로그에 구성 유형이 표시되어야 하는 위치입니다. 유효한 값은 Target, Resource, Deployment 입니다.

configuration[].custom_config.original_grouping

구성 유형이 원래 표시된 위치입니다. 유효한 값은 Target, Resource, Deployment 입니다.

configuration[].custom_config.grouping_index

이 구성 항목이 여러 개 있는 경우의 순서입니다.

configuration[].custom_config.config_constraints

사용자 지정 위젯에 지정된 제약 조건 매개 변수의 맵입니다.

configuration[].custom_config.associations

구성과 관련된 매개 변수에 대한 객체입니다.

configuration[].configuration_group

연결된 구성 그룹의 이름입니다.

configuration[].value_constraints[]

각 제약 조건이 유효성 검사 규칙을 정의하는 값 제약 조건의 배열입니다.

configuration[].value_constraints[].type

제약 조건의 유형입니다. 현재는 regex 만 지원됩니다.

configuration[].value_constraints[].value

JavaScript 정규식.

configuration[].value_constraints[].description

제공된 값이 지정된 정규식과 일치하지 않을 경우 표시할 메시지입니다.

schematics_env_values

flavors 섹션에서 schematics_env_values 은 테라폼을 실행하는 동안 환경 변수로 사용할 Schematics 서비스에 전달해야 하는 값과 변수 이름의 목록을 지정합니다. 이는 보안 값, 테라폼 로깅 설정 또는 다른 것일 수 있습니다. 문자열을 지정하거나 Secrets Manager 에 대한 참조를 만들도록 선택할 수 있습니다. 둘 다 지정하면 Secrets Manager 참조가 사용됩니다.

다음 예는 schematics_env_values 섹션의 JSON 구조를 보여줍니다:

"flavors": [{
  "schematics_env_values": {
    "value": "[{\"name\": \"TF_LOG\",\"value\": \"TRACE\",\"secure\": true,\"hidden\": true}]",
    "sm_ref": "cmsm_v1:{...}"
  }
}]

schematics_env_values 섹션에 포함할 수 있는 값은 다음과 같습니다:

schematics_env_values.value
환경 변수 배열과 해당 값을 포함하는 JSON 문자열입니다.
schematics_env_values.value[].name
환경 변수의 이름을 지정합니다.
schematics_env_values.value[].value
환경 변수의 값을 지정합니다.
schematics_env_values.value[].secure
실행 로그에 환경 변수 값을 일반 텍스트로 표시할지 여부를 지정합니다. 가능한 값은 true 또는 false입니다.
schematics_env_values.value[].hidden
실행 로그에 이 변수를 포함할지 여부를 지정합니다. 가능한 값은 true 또는 false입니다.
schematics_env_values.sm_ref
비밀로 저장된 환경 변수가 포함된 Secrets Manager 인스턴스에 대한 참조입니다. 비밀 번호는 환경 변수 배열과 해당 값을 포함하는 JSON 문자열이어야 합니다.

다음 예제 JSON 문자열에는 두 개의 변수 TF_LOGTF_IGNORE, 그리고 테라폼 실행 중에 환경 변수로 추가되는 값이 포함되어 있습니다:

"schematics_env_values": {
    "value": "[{\"name\": \"TF_LOG\",\"value\": \"TRACE\",\"secure\": true,\"hidden\": true},{\"name\": \"TF_IGNORE\",\"value\": \"TRACE\",\"secure\": false,\"hidden\": false}]"
}

목록 내의 따옴표에는 이스케이프 문자를 사용합니다.

다음 예제에서는 Secrets Manager 에서 시크릿에 대한 참조를 사용합니다:

"schematics_env_values": {
    "sm_ref": "cmsm_v1:{\"name\": \"envVarSecret\",\"id\":\"1234567890\",\"service_id\":\"crn:v1:bluemix:public:secrets-manager:eu-gb:a/1234567890:1234567890::\",\"service_name\":\"My SM instance\",\"group_id\":\"1234567890\",\"group_name\":\"My SM group\",\"resource_group_id\":\"1234567890\",\"region\":\"eu-gb\",\"type\":\"arbitrary\"}"
}

minimum_compatible_version(선택사항)

현재 버전과 호환되는 가장 이전 버전을 나타내는 세미버 값입니다. 현재 버전과 호환되는 이전 버전이 없는 경우 이 필드에 현재 버전 값을 지정합니다. 기본적으로 현재 버전은 모든 이전 버전과 호환됩니다.

ignore_readme

true 로 설정하면 이 버전을 온보딩할 때 readme 파일이 사용되지 않으며 long_description 필드가 비어 있습니다. long_description 필드가 비어 있으면 해당 버전의 카탈로그 목록의 관련 링크 메뉴에 readme 파일에 대한 링크가 표시되지 않습니다.

terraform_version

버전을 검증하고 설치하는 데 필요한 해시코프 테라폼 런타임 버전입니다. 매니페스트에서 이 값을 설정하면 소스 코드에 지정된 값이 재정의됩니다.

outputs

테라폼 출력 값에 대한 정보를 제공하는 섹션 헤더입니다.

{
   "key": "name of the output value as defined in the Terraform",
   "description": "The description of the key"
}

outputs 섹션에 포함할 수 있는 값은 다음과 같습니다:

outputs[].key
출력 값을 지정합니다.
outputs[].description
출력 값에 대한 간단한 요약입니다.

install_type

배포 가능한 아키텍처가 fullstack 또는 extension 인지 여부를 지정합니다. 확장으로 나열된 아키텍처에는 전제 조건이 필요합니다. 이 값을 extension 으로 설정한 경우 dependencies 배열도 완료해야 합니다. dependency_version_2true 로 설정된 경우 이 속성은 무시됩니다.

scripts

지정된 작업의 특정 단계에서 프로젝트에서 실행할 수 있는 동일한 리포지토리 내에 포함된 스크립트 목록입니다. 맵의 각 키는 항목의 actionstage 형식과 일치해야 합니다. Stagepre 또는 post 이어야 합니다. Actionvalidate, deploy 또는 undeploy 이어야 합니다.

{
   "short_description": "description for the script",
   "type": "type of script. i.e. ansible",
   "path": "the path to the script in the repo. Must begin with scripts/...",
   "stage": "pre or post",
   "action": "The action that executes the script. Options include validate, deploy, or undeploy."
}