デプロイ可能アーキテクチャーの構成
デプロイ可能なアーキテクチャーをプロジェクトに追加した後、入力値を編集して、そのアーキテクチャーをデプロイメント用に構成することができます。
構成は汎用にすることができますが、多くのプロジェクトでは、1 つの構成または構成のグループを使用して、異なる環境にリソースをデプロイします。 例えば、構成のグループを使用して、開発環境、テスト環境、および実稼働環境にリソースをデプロイし、環境の外部で共通サービスをセットアップすることができます。 構成をデプロイすると、 IBM Cloud® Schematics は Terraform を使用して基礎となるプランを適用します。
アーキテクチャを展開する前に、展開可能なアーキテクチャの入力、計画、コンプライアンス、および概算コストを検証する必要があります。 コンフィギュレーションに加えられたすべての変更は、問題や失敗がないことを確認するために検証される。
入力値の設定
入力値は、特定のニーズに合うようにデプロイ可能なアーキテクチャーを構成するために使用されます。 必要な入力は、選択したデプロイ可能なアーキテクチャーによって異なります。 アーキテクチャーがどのように設計されているかに応じて、一部の入力には、選択可能なオプションのセットが含まれていたり、テキスト・ストリングとしてフィールドに値を入力したりすることができます。
値の参照
ある構成の出力を別の構成の入力として使用することにより、構成を相互にリンクすることができます。 例えば、アプリケーションの構成では、クラスター ID などのインフラストラクチャー構成からの出力を使用して、そのインフラストラクチャーにデプロイすることができます。 これを実現するために、別の構成からの入力または出力への参照を追加することができます。 環境からパラメーターを参照することもできます。 参照を追加すると、入力、出力、または環境から値がプルされ、構成中のアーキテクチャーで入力値として使用されます。
コンソールで、入力の上にカーソルを移動し、 「参照」 アイコン を選択することで、構成しているアーキテクチャーに参照を追加できます。
APIまたはCLIを使用してデプロイ可能なアーキテクチャを構成する場合、または デプロイ可能なアーキテクチャスタック定義の編集 参照を含めたい場合は、テキスト文字列として記述することができます。 参照先URLを満たしていますが、 http
ではなく、 ref
という別のプロトコルを使用しています。
Web サイト上の URL と同様に、現在のコンテキストに関連する参照を作成することができます。 たとえば、現在編集中の設定内の入力への参照を追加する場合、現在のパスは次のようになります。/configs/<configname>
そして、そのパスを基準とした参照を記述することができます。 例えば、ref:./inputs/region
入力への参照を追加します。region
同じ構成内。
この場合、編集中の構成は、その中の別の値を参照するためにデプロイする必要はありません。
参照する出力の名前を確認するには、プロジェクト内のデプロイ済み構成を開き、 「出力」 タブに移動します。
構成からの値の参照
構成内の値を参照するための一般的な形式は、以下のとおりです。
ref:/configs/<config_name>/inputs_or_outputs/<input_or_output_name>
.
プロジェクトからデプロイされたコンフィギュレーションから入力や出力を参照することができます。 例えば、以下の参照は、 ProdCluster
構成内の cluster_id
という名前の出力を指しています。 ref:/configs/ProdCluster/outputs/cluster_id
。
現在編集中の構成内の別の入力への相対参照を追加できます。 そのために構成をデプロイする必要はありません。
実験
プロジェクト内でコンフィギュレーションを積み重ねた場合、積み重ねたコンフィギュレーション間の出力を参照することができます。 値を参照する一般的な書式は以下の通り:
ref:/configs/<stack_name>/members/<member_name>/inputs_or_outputs/<input_or_output_name>
相対参照を行う場合は、それを行うことができます。 積み重ねられたコンフィギュレーション間の相対参照は、 ref:../<member_name>/inputs_or_outputs/<input_or_output_name>
のようにフォーマットされる。 しかし、スタック定義内の値を参照する場合は、メンバー構成内で ref:../../inputs/<input_name>
。 現在、メンバーはスタック定義からの出力を参照できない。
環境からの入力の参照
環境は構成内ではなくプロジェクト内で作成されるため、環境内でパラメーターを参照する場合は /configs/<configname>
を含める必要はありません。 ただし、 environments
参照タイプの後に環境の名前を含める必要があります。 次に、 inputs
を指定し、参照する入力の名前 ( ref:./environments/<environment_name>/inputs/<name>
)
を指定します。 環境から認証パラメーターまたはコンプライアンス・プロファイルへの参照を追加することはできません。
例えば、以下の参照は、 Production
環境内の cluster_id
という名前の入力パラメーターを指しています。 ref:./environments/Production/inputs/cluster_id
コンソールを使用したアーキテクチャーの構成
カスタマイズされたコンフィギュレーションを作成するには、以下の手順に従います:
-
Security(セキュリティ) パネルから、アーキテクチャのデプロイに使用する認証方法を選択します。
IBM Cloud® Secrets Managerを使用して API キーを追加します。 これにより、プロジェクトがターゲット・アカウントにデプロイすることが許可され、アーキテクチャーをデプロイする必要があります。 詳しくは、 Secrets Manager を参照して、アーキテクチャーをデプロイするためのプロジェクトを許可する を参照してください。
-
検証中に、ご使用のアーキテクチャーで Code Risk Analyzer スキャンが実行されます。 検証時に使用するコントロールを選択します。 ターゲット・アカウントに添付ファイルがセットアップされている場合は、 「アーキテクチャーのデフォルト」 コントロール、または 「 Security and Compliance Center オプションを使用できます。
「アーキテクチャー・デフォルト」 を選択した場合:
- スキャンでは、デプロイ可能アーキテクチャーの所有者がオンボード時に追加したデフォルト・コントロールが使用されます。
- がサポートする Security and Compliance Center ルール のセットにも含まれている、追加されたアーキテクチャー所有者がチェックされることを制御します。
- サポートされるルールのリストに含まれていない、アーキテクチャー所有者が追加した追加のコントロールは、構成の検証時に検査されません。
- デプロイ可能アーキテクチャーの所有者が製品にコンプライアンス制御を追加しなかった場合は、 Security and Compliance Center ルールの完全セットが使用されます。
追加されたコントロールのリストを表示するには、IBM Cloud®カタログに移動し、構成している配置可能なアーキテクチャを選択します。 「セキュリティー & コンプライアンス」タブには、デプロイ可能アーキテクチャーに追加されたすべてのコントロールがリストされます。
「 Security and Compliance Centerから選択」 を選択する場合は、デプロイ先のターゲット・アカウントに、サービスのインスタンスと Security and Compliance Center を介した添付ファイルがなければなりません。 添付ファイルの作成については、IBM Cloud Security and Compliance Centerによるリソース構成の評価 を参照してください。
-
Configure architecture パネルで、配置可能なアーキテクチャ構成に必要な入力の値を入力します。
デプロイ可能なアーキテクチャによっては、いくつかの入力が、他のアーキテクチャへの参照や固定値で設定されている場合がある。 これらの値は、配備可能なアーキテクチャの作成者から提供されたものである。 これらの値、特にリファレンスを編集する場合は注意してください。 入力にカーソルを合わせて「 リセット 」をクリックすると、作成者が指定した固定値に戻ります。 入力参照をリセットすることはできない。 元の固定値にリセットできるのは、固定値の入力だけです。
-
オプション:オプション入力の値を入力するために、 Advancedをオンの位置にトグルする。
-
保存 をクリックします。
-
検証 をクリックします。 表示されるモーダルには、進行中の検証に関する詳細が示されます。
検証が失敗した場合は、 失敗のトラブルシューティング を行うことができます。 あるいは、 IBM Cloud プロジェクト・サービスの管理者は、 Schematics サービスを使用して結果を確認し、 失敗をオーバーライドして構成を承認 してデプロイすることができます。 ただし、検証または計画の失敗が原因ではなく、Code Risk Analyzer スキャンが原因でパイプラインが失敗したことを確認してください。 構成が正常にデプロイされない可能性があるため、検証または計画の失敗が原因でフラグが立てられた障害をオーバーライドすることは推奨されません。 プロジェクトでのセキュリティーとコンプライアンスについて詳しくは、 エンタープライズとしての継続的なコンプライアンスの実現 を参照してください。
デプロイ可能なアーキテクチャを積み重ねて構成する場合、依存関係に従って各アーキテクチャを順番に検証するようにしてください。 あるいは、プロジェクトの設定を編集して、正常に検証された設定変更を自動的にデプロイすることもできます。 そうすれば、各アーキテクチャは検証され、承認され、依存関係に従って自動的にデプロイされる。 詳細については、 アーキテクチャのデプロイを 参照してください。
コンソールを使用した構成変更の承認
構成を検証した後、 IBM Cloud プロジェクト・サービスでエディターまたは管理者によって変更が承認される必要があります。 変更を承認するには、以下のステップを実行します。
- プロジェクト・リストからプロジェクトを選択します。
- プロジェクトの 「概要」 タブに、未解決の要対応項目がないことを確認します。 注意が必要な項目があると、デプロイできなくなる可能性があります。
- 「構成」 タブに移動し、デプロイ可能なアーキテクチャー構成を選択します。
- 「編集」 をクリックします。
- 「最終検証の表示」 をクリックします。
- 承認に関する詳細を提供するコメントを追加し、 「承認」 をクリックします。
Code Risk Analyzer スキャンが原因で検証が失敗した場合、 IBM Cloud プロジェクト・サービスの管理者は、デプロイする構成を オーバーライドして承認 することができます。
CLI を使用したアーキテクチャーの構成
CLI を使用してプロジェクトに構成を追加するには、以下の ibmcloud project config-create
コマンドを実行します。
ibmcloud project config-create --project-id PROJECT-ID [--definition DEFINITION] [--schematics SCHEMATICS]
コマンド・パラメーターについて詳しくは、「 ibmcloud project config-create
」を参照してください。
CLI を使用した構成変更の承認
-
以下の
ibmcloud project config-validate
コマンドを実行して、構成の検証チェックを取得します。ibmcloud project config-validate --project-id PROJECT-ID --id ID
コマンド・パラメーターについて詳しくは、「
ibmcloud project config-validate
」を参照してください。 -
構成を検証した後、以下の
ibmcloud project config-approve
コマンドを実行して、構成の編集を承認し、それらをメイン構成にマージします。ibmcloud project config-approve --project-id PROJECT-ID --id ID [--comment COMMENT]
コマンド・パラメーターについて詳しくは、「
ibmcloud project config-approve
」を参照してください。
APIを使ってアーキテクチャを構成する
以下のサンプルリクエストに示すように、 Projects APIを呼び出すことで、プログラムによってプロジェクトに設定を追加することができます。 この例では、 My new configuration
という名前のコンフィギュレーションをプロジェクトに追加しています:
curl -X POST --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{ "definition": { "name": "env-stage", "description": "Stage environment configuration.", "locator_id": "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.018edf04-e772-4ca2-9785-03e8e03bef72-global", "inputs": { "account_id": "account_id", "resource_group": "stage", "access_tags": [ "env:stage" ], "logdna_name": "LogDNA_stage_service", "sysdig_name": "SysDig_stage_service" }, "settings": { "IBMCLOUD_TOOLCHAIN_ENDPOINT": "https://api.us-south.devops.dev.cloud.ibm.com" } } }' \
"{base_url}/v1/projects/{project_id}/configs"
APIを使用した設定変更の承認
以下のサンプルリクエストに示すように、 Projects APIを呼び出すことで、設定編集をプログラムで承認し、メイン設定にマージすることができます。 この例では、コンフィギュレーションの編集を承認し、コンフィギュレーションにマージします:
curl -X POST --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{ "comment": "Approving the changes" }' \
"{base_url}/v1/projects/{project_id}/configs/{id}/approve"