カタログ・マニフェストをローカルで編集する

カタログ・マニフェスト・ファイルは、カタログを通じてユーザーと共有したいオンボード・ソリューションに関する情報を指定します。 ライセンスやコンプライアンスに関する情報を提供したり、特定の設定を行ったり、製品の使用目的について説明したりすることができます。

コンソールを使ってカタログの詳細を編集したいですか? 提供されたウィザードを使用して、マニフェスト・ファイルをエクスポートします に従って選択し、ソース・レポに追加することができる。 プロジェクト内で配置可能なアーキテクチャをスタックして いる場合、プロジェクトからプライベート・カタログにアーキテクチャを追加すると、カタログ・マニフェストが作成されます。

カタログの詳細をマニフェスト・ファイルにマッピングする

マニフェストファイルに追加されたコンテンツがユーザーにどのように表示されるかを視覚化するために、 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"
               }
            }
         ]
      }
   ]
}

使用可能な値

以下のセクションには、マニフェスト・ファイルで参照できる各値に関する情報が含まれています。

製品

productsの値は、サイズが1以上の商品の配列を示します。 リポジトリのルートにカタログ マニフェスト ファイルが存在する場合、そのファイル内の製品のみをインポートできます。 製品は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[] (オプション)
互換性のあるバリエーションのプログラム名。 バリエーションは個別にカタログに搭載され、バージョン番号が与えられる。 バリエーション名の例としては、 standardadvanced などがある。

フレーバー

展開可能なアーキテクチャのバリエーションについては、セクションヘッダを参照のこと。 フレーバーはコンソールのバリエーションとして知られるようになった。 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 (オプション)

デプロイ可能なアーキテクチャの新バージョンをリリースする際に、ユーザーに警告を発したくなるような3種類の変更のリストです。 breaking changesnew featuresgeneral 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
図のSVGへの URL。 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。 1つまたは複数のモジュールだけで構成される展開可能なアーキテクチャには、 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 (オプション)
オンボーディングするアーキテクチャが参照する依存関係の変数を指定します。 値は依存関係の変数名である。 これら2つのプロパティのうち1つだけを提供すべきである。 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 デフォルトでユーザーに選択される、グループ内の依存関係の 1 つ。
swappable_dependencies[].dependencies
このグループ内でスワップ可能な依存関係の配列。 この配列内の値は、セクションで説明した値と同じです。 dependencies セクションで説明されている値と同じです。

release_notes_url

URL をアーキテクチャのリリースノートに追加した。

configuration

flavors セクション内のセクションヘッダで、特定のバリエーションに対するデプロイメント変数の設定を指定する。 カタログ・データ型は、ネイティブのデータ型を拡張するために使用され、 IBM Cloud コンソールで作業する際のユーザー体験を向上させる。 ローカル・マシンや他の環境でコードを実行している場合、変数は使用されない。 例えば、 string のタイプで定義されたTerraform変数の機能を拡張し、UIでセンシティブとして扱われるようにするために使用される password のカタログタイプである。

次の例は、コンフィギュレーション・セクションの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

お客様定義または選択できる入力のタイプ。 データ型は、カタログ管理サービスがサポートしていなければならない。 ネイティブなTerraformの型は、サポートされているいくつかの型にマッピングされる。 例えば、Terraform のタイプ mapobject に相当する。 Terraform のタイプ listarray に相当する。 Terraformのタイプ string 、sensitive属性は password。 ディプロイメント可能なアーキテクチャを消費する顧客は、カタログマニフェストで定義した入力タイプの値を提供する必要があります。

サポートされる定義済みタイプ:

  • boolean は、 true または false の文字列入力をユーザーから要求する。
  • float はユーザーから小数点以下を要求される。
  • int はユーザーからの整数入力を必要とする。
  • number には数値が必要である。 number 型は、整数も 4.56 のような小数も表すことができる。
  • password はユーザーからの文字列入力を必要とする。 この文字列はコンソールとログで再編集される。
  • string は、テキストを表すユニコード文字のシーケンスを必要とします。 接尾辞として追加するランダムな文字列をオプションで含めることができ、接頭辞やベース名として使用される文字列の名前の衝突を避けることができます。 このランダム文字列の長さを指定することもできる。 生成される文字列は、小文字、a-z、特殊文字なし、ダッシュで始まる、例えば、 myString-wx。 デフォルト値も与えられている場合は、接尾辞が追加される。 デフォルト値が与えられていない場合、値はダッシュ文字を除いたサフィックスとなる。 以下に例を示します。
"random_string": {
	"length": 2
}
  • object はユーザーからのTerraformオブジェクトの入力を必要とする。 細については、 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形式の入力を選べるので、Terraformベースの入力に便利です。
  • Platform resource は、指定したリソースタイプのインスタンスリソースをリストから選択することをユーザーに要求します。 リ ソ ース タ イ プは、 VPC Subnet, VPC Image, VPC Floating IPs, Cloud Logs, Sysdig, Cloud Object Storage, Key Protect, または Secrets Manager のいずれかです。 ユーザーが選択できる値として、ID、名前、またはCRNを指定し、単一または複数の選択を許可することができます。 出力されるのは、Terraformのコードが必要とする名前またはIDである。
  • secret_group は、ユーザーが特定の Secrets Manager インスタンスから名前で秘密グループを選択することを要求する。 出力は秘密グループのIDまたは名前である。 特定の Secrets Manager インスタンスからグループをリストするには、この型を platform resource カスタム型、リソース型 Secrets Manager、および crn 値型出力と関連付ける必要があります。
  • secret は、ユーザーが特定の Secrets Manager インスタンスから名前で秘密を選択することを要求する。 出力は秘密のID、名前、またはCRNである。 特定の Secrets Manager インスタンスから秘密をリストするために、この型は少なくとも platform resource カスタム型、リソース型 Secrets Manager、および crn 値型出力に関連付けられていなければならない。 オプションで、 secret_group タイプと同様に、 id 値タイプ出力と関連付けることで、その Secrets Manager インスタンス内の特定の秘密グループからの秘密を一覧表示することができる。
  • kms_key は、ユーザーが特定の Key Protect インスタンスからキーを選択することを要求する。 出力はキーのID、名前、またはCRNである。 特定の Key Protect インスタンスからキーを一覧表示するには、この型を platform resource カスタム型、リソース型 Key Protect、値型出力 crn と関連付ける必要があります。
configuration[].default_value

デフォルトとして設定される値。

configuration[].virtual (オプション)

入力を Schematics サービスに渡すかどうかを指定するフラグ。 true に設定された場合、入力は Schematics に渡されない。 互換性のあるアーキテクチャで参照されているが、オンボーディングしているデプロイ可能なアーキテクチャでは使用されていない、デプロイ可能なアーキテクチャ内の入力に対して、このフラグを true に設定します。 input_mappingdependencies または 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

コンフィギュレーション・タイプをカタログのどこに表示するか。 有効な値は TargetResourceDeployment である。

configuration[].custom_config.original_grouping

コンフィギュレーション・タイプが元々表示されていた場所。 有効な値は TargetResourceDeployment である。

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 サービスに渡す必要がある値と変数名のリストを指定し、Terraform の実行中に環境変数として使用します。 これはセキュアな値かもしれないし、Terraformのロギングの設定かもしれないし、他のものかもしれない。 文字列を指定するか、 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 インスタンスへの参照。 secretは、環境変数とその値の配列を含むJSON文字列でなければならない。

以下の例のJSON文字列には、 TF_LOGTF_IGNORE という2つの変数と、Terraform実行時に環境変数として追加されるその値が含まれています:

"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 (オプション)

現在のバージョンと互換性のある最も古いバージョンを示すsemver値。 現在のバージョンと互換性のある以前のバージョンがない場合は、このフィールドに現在のバージョンの値を指定する。 デフォルトでは、現在のバージョンは以前のすべてのバージョンと互換性があります。

ignore_readme

true に設定されている場合、このバージョンにオンボードするときに readme ファイルは使用されず、 long_description フィールドは空になります。 long_description フィールドが空の場合、そのバージョンのカタログ一覧の「 関連リンク」 メニューに readme ファイルへのリンクが表示されません。

terraform_version

バージョンの検証とインストールに必要なHashicorp Terraformランタイムのバージョン。 マニフェストでこの値を設定すると、ソースコードで指定されている値が上書きされます。

outputs

Terraformの出力値に関する情報のセクションヘッダ。

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

outputs

outputs[].key
出力値を指定する。
outputs[].description
出力値の簡単な要約。

install_type

展開可能なアーキテクチャが fullstackextension かを指定する。 拡張として記載されているアーキテクチャーには前提条件が必要です。 この値を extension に設定した場合は、 dependencies 配列も完了する必要があります。 dependency_version_2true に設定されている場合、このプロパティは無視される。

scripts

同じリポジトリに含まれるスクリプトのリストで、指定されたアクションの特定の段階でプロジェクトが実行できるもの。 マップの各キーは、エントリーのフォーマット actionstage と一致しなければならない。 Stageprepost のいずれかでなければならない。 Actionvalidatedeployundeploy のいずれかでなければならない。

{
   "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."
}