プライベート プールの構成ファイルのスキーマ

プライベート プールの構成ファイル(プライベート プール構成ファイル)には、指定した内容に基づいて Cloud Build がプライベート プールを作成するための指示が含まれています。プライベート プール構成ファイルには、プライベート プールに使用するディスクサイズやマシンタイプなどの情報が含まれています。gcloud ツールまたは Cloud Build API を使用してプライベート プールを作成および管理する場合は、プライベート プール構成ファイルが必要です。

プライベート プール構成ファイルの構造

プライベート プールの構成ファイルは YAML または JSON 構文で記述します。curl を使用してプライベート プールを作成、管理するには、プライベート プール構成ファイルを JSON 形式で記述します。gcloud ツールを使用してプライベート プールを作成、管理するには、プライベート プール構成ファイルを YAML 形式または JSON 形式で作成します。

プライベート プールの構成ファイルの構造は次のとおりです。

YAML

privatePoolV1Config:
  networkConfig:
    egressOption: NO_PUBLIC_EGRESS
    peeredNetwork: 'PEERED_NETWORK'
    peeredNetworkIpRange: 'PEERED_NETWORK_IP_RANGE'
  workerConfig:
    diskSizeGb: 'PRIVATE_POOL_DISK_SIZE'
    machineType: PRIVATE_POOL_MACHINE_TYPE

JSON

{
  "privatePoolV1Config": {
    "networkConfig": {
      "egressOption": "NO_PUBLIC_EGRESS",
      "peeredNetwork": "PEERED_NETWORK",
      "peeredNetworkIpRange": "PEERED_NETWORK_IP_RANGE"
    },
    "workerConfig": {
      "diskSizeGb": "PRIVATE_POOL_DISK_SIZE",
      "machineType": "PRIVATE_POOL_MACHINE_TYPE"
    }
  }
}

以降では、プライベート プール構成ファイル内の各フィールドについて説明します。

networkConfig

このフィールドは省略できます。 networkConfig は、VPC ネットワークをサービス プロデューサー ネットワークとピアリングする場合にのみ指定します。

egressOption

このフィールドは省略できます。 VPC Service Controls の境界内にプライベート プールを作成する場合は、このフィールドの値を NO_PUBLIC_EGRESS に設定します。プライベート プール構成ファイルにこのフィールドを含めない場合、パブリック下り(外向き)が有効になります。 プライベート プール用の VPC Service Controls の設定については、VPC Service Controls の使用をご覧ください。

peeredNetwork

プライベート プール構成ファイルに networkConfig フィールドが含まれている場合、このフィールドは必須です。このフィールドの値を、サービス プロデューサー ネットワークとピアリングされている VPC ネットワークのネットワーク リソース URL に設定します。ネットワーク リソース URL は、projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME の形式にする必要があります。ここで、NETWORK_PROJECT_ID は VPC ネットワークを保持する Google Cloud プロジェクトのプロジェクト ID で、NETWORK_NAME は VPC ネットワークの名前です。値を指定しない場合、Cloud Build はデフォルトでサービス プロデューサー ネットワークを使用します。

peeredNetworkIpRange

このフィールドは省略できます。 このフィールドに値を設定して、ピアリングされたネットワークの割り当て範囲内で VM を割り当てることができる内部 IP 範囲を指定します。サイズ制限や無効な開始 IP などのために、指定された IP 範囲をプライベート接続の範囲内で割り当てることができない場合は、プライベート プールを作成できません。

peeredNetworkIpRange は、'STARTING_IP/SUBNET_PREFIX_SIZE' の形式でクラスレス ドメイン間ルーティング(CIDR)表記を使用して指定されます。このフィールドを使用する場合は、SUBNET_PREFIX_SIZE を指定する必要があります。SUBNET_PREFIX_SIZE は IP 範囲のサイズを決定します。先頭はスラッシュ(/)にしてください。値は 29 以下でなければなりません。STARTING_IP 部分は省略可能で、範囲の開始アドレスを指定します。STARTING_IP を指定しない場合、開始アドレスはプライベート接続範囲内から自動的に割り当てられます。peeredNetworkIpRange に値が指定されていない場合は、デフォルト値の /24 が使用され、開始 IP の範囲が 256 個の IP が自動的に割り当てられます。

SUBNET_PREFIX_SIZE の値は 29 以下にする必要があります。数値が大きいほどサブネットの接頭辞が大きくなり、使用できる IP 数が少なくなり、結果的に IP 範囲が小さくなります。IP アドレスが 32 ビットであるため、接頭辞のサイズが /24 の場合、範囲内の使用可能な IP の数は 256 個(8 ビット)ですが、プレフィックス サイズが /29 の場合、使用可能な IP の数は 8 個(3 ビット)になります。ビルダー VM の最大数は、範囲内の使用可能な IP の数に限定されます(範囲内の使用可能な IP の合計数 から 2 を引いた値)。

peeredNetworkIpRange フィールドの例については、以下をご覧ください。

  • 192.168.0.0/24 は、サブネット接頭辞サイズが 24 の 192.168.0.0 から始まる IP 範囲を指定します(IP が 256、使用可能な IP が 254)。
  • /29 では、自動的に決定される開始 IP とサブネット接頭辞のサイズが 29(8 つの IP、6 つの使用可能な IP)で範囲を指定します。

workerConfig

これは必須項目です。プライベート プールの構成オプションが含まれています。

diskSizeGb

このフィールドは省略できます。 このフィールドを使用して、プライベート プール インスタンスのディスクサイズを GB 単位で指定します。100 以上、2,000 以下の値を指定します。プライベート プール構成ファイルにこのフィールドを含めない場合、またはこのフィールドの値として 0 を指定した場合、Cloud Build ではデフォルト値の 100 を使用します。

machineType

このフィールドは省略できます。 このフィールドを使用して、プライベート プール インスタンスの Compute Engine マシンタイプを指定します。次のいずれかのマシンタイプを指定します。

  • e2-medium
  • e2-standard-2
  • e2-standard-4
  • e2-standard-8
  • e2-standard-16
  • e2-standard-32
  • e2-highmem-2
  • e2-highmem-4
  • e2-highmem-8
  • e2-highmem-16
  • e2-highcpu-2
  • e2-highcpu-4
  • e2-highcpu-8
  • e2-highcpu-16
  • e2-highcpu-32

値を指定しない場合、Cloud Build はデフォルト値の e2-medium を使用します。

次のステップ