コンパクトなGitリポジトリのダウンロード

Schematics ワークスペースは、入力データ、出力状態、ジョブ、およびジョブ・ログ・ファイルを含む Terraform テンプレートのコンテナーとして機能します。 ワークスペースは、Terraform テンプレートの Git URL を使用します。 例えば、ユーザーがテンプレート・ファイルをダウンロードして安全に保管するために URL https://github.com/terraform-ibm-modules/terraform-ibm-database/tree/main/examples/simple-etcd を指定したとします。 Schematics のデフォルトの実行では、 Git リポジトリ全体をダウンロードし、安全に保存します。 Schematics は、Terraformテンプレートが、リポジトリ内の他のフォルダにあるモジュール、スクリプト、またはデータファイルへの相対参照を含んでいることを前提としています。

ただし、場合によっては、ユーザーはTerraformテンプレートが特定のフォルダとその sub directory に隔離されていることを認識していることもあります。例えば、 Git リポジトリ内の examples/simple-etcd などです。これで、ユーザーは Git リポジトリーからの関連ファイルのみをワークスペースにダウンロードする必要があります。これは、 コンパクトダウンロード機能を利用することで実現できます。 「コンパクトダウンロード」機能により、ワークスペースの作成や更新時に、 Git リポジトリからファイルをダウンロードして処理する時間が短縮されます。

コンパクト・ダウンロードの使用

「Schematics ワークスペース・ページの作成」Download entire repo チェック・ボックスのチェック・マークを外すと、console を介して コンパクト・ダウンロード 機能をアクティブ化できます。デフォルトでは、Git リポジトリー全体をダウンロードするためのチェック・ボックスが選択されています。

また、コード・ブロックに示されているように、ワークスペースの「作成」にある compact フィールドまたは「更新」 ペイロードを使用して、API or CLI を介してコンパクト・ダウンロードをアクティブ化することもできます。

{
        "name": "Testmyservice",
        "type": [
                "terraform_v1.4"
        ],
        "description": "Create Terraform workspace to test compact feature",
        "tags": [
                "test:bbbranch"
        ],
        "template_repo": {
                "url": "https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-resource-instance"
        },
        "template_data": [{
                "folder": ".",
                "compact": true,
                "type": "terraform_v1.4"
    }]
}

  • ワークスペース作成要求ペイロードで**「コンパクト」**フィールドが指定されていない場合、デフォルトで実行されるのは full repository download または compact : false です。
  • ワークスペース更新要求ペイロードに**「コンパクト」**フィールドがない場合、デフォルトの実行には以前の compact 設定が使用されます。
  • Git リポジトリー URL は、コンパクト・フラグが設定されている場合にのみ、ワークスペース要求ペイロードの「作成」または「更新」の両方で必須です。
  • 「ワークスペースの取得」応答にコンパクト・フィールドが含まれるのは、**「コンパクト」**ダウンロード・モードが有効になっている場合のみです。
  • このテンプレートに記載 されているように、 Git リポジトリ( URL )がリポジトリのルートである場合、「コンパクト版ダウンロード」と「完全版ダウンロード」はまったく同じものです。 コンパクト・チェックボックスが checked であるか unchecked であるかは問題ではありません。