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

プライベート プールの構成ファイルには、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 が使用されます。これにより、256 個の IP の範囲で開始 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 以上、4,000 以下の値を指定します。プライベート プール構成ファイルにこのフィールドを含めない場合、またはこのフィールドの値として 0 を指定した場合、Cloud Build ではデフォルト値の 100 を使用します。

machineType

このフィールドは省略できます。 このフィールドを使用して、プライベート プール インスタンスの Compute Engine マシンタイプを指定します。値を指定しない場合、Cloud Build はデフォルト値の e2-medium を使用します。それ以外の場合は、次のいずれかのマシンタイプを指定します。

マシンタイプ

e2 n2d c3
e2-medium n2d-standard-2 c3-standard-4
e2-standard-2 n2d-standard-4 c3-standard-8
e2-standard-4 n2d-standard-8 c3-standard-22
e2-standard-8 n2d-standard-16 c3-standard-44
e2-standard-16 n2d-standard-32 c3-standard-88
e2-standard-32 n2d-standard-48 c3-standard-176
e2-highmem-2 n2d-standard-64 c3-highcpu-4
e2-highmem-4 n2d-standard-80 c3-highcpu-8
e2-highmem-8 n2d-standard-96 c3-highcpu-22
e2-highmem-16 n2d-standard-128 c3-highcpu-44
e2-highcpu-2 n2d-standard-224 c3-highcpu-88
e2-highcpu-4 n2d-highmem-2 c3-highcpu-176
e2-highcpu-8 n2d-highmem-4 c3-highmem-4
e2-highcpu-16 n2d-highmem-8 c3-highmem-8
e2-highcpu-32 n2d-highmem-16 c3-highmem-22
n2d-highmem-32 c3-highmem-44
n2d-highmem-48 c3-highmem-88
n2d-highmem-64 c3-highmem-176
n2d-highmem-80
n2d-highmem-96
n2d-highcpu-2
n2d-highcpu-4
n2d-highcpu-8
n2d-highcpu-16
n2d-highcpu-32
n2d-highcpu-48
n2d-highcpu-64
n2d-highcpu-80
n2d-highcpu-96
n2d-highcpu-128
n2d-highcpu-224

次の表に、リージョン別のマシンタイプの可用性を示します。

リージョン別のマシンタイプの可用性

c3-standard-* c3-highcpu-* c3-highmem-* e2-* n2d-*
asia-northeast1 asia-southeast1 asia-southeast1 africa-south1 africa-south1
asia-southeast1 europe-west1 europe-west1 asia-east1 asia-east1
australia-southeast1 europe-west3 europe-west2 asia-east2 asia-east2
europe-west1 europe-west4 europe-west3 asia-northeast1 asia-northeast1
europe-west2 me-central2 europe-west4 asia-northeast2 asia-northeast2
europe-west3 us-central1 us-central1 asia-northeast3 asia-northeast3
europe-west4 us-east1 us-east1 asia-south1 asia-south1
europe-west9 us-east4 us-east4 asia-south2 asia-south2
me-central2 us-east5 us-east5 asia-southeast1 asia-southeast1
me-west1 us-west2 us-west1 asia-southeast2 asia-southeast2
northamerica-northeast1 us-west3 us-west2 australia-southeast1 australia-southeast1
southamerica-east1 us-west4 australia-southeast2 australia-southeast2
us-central1 europe-central2 europe-central2
us-east1 europe-north1 europe-north1
us-east4 europe-north2 europe-southwest1
us-east5 europe-southwest1 europe-west1
us-west1 europe-west1 europe-west10
us-west2 europe-west2 europe-west12
us-west3 europe-west3 europe-west2
us-west4 europe-west4 europe-west3
europe-west6 europe-west4
europe-west8 europe-west6
europe-west9 europe-west8
europe-west10 europe-west9
europe-west12 me-central1
me-central1 me-central2
me-central2 me-west1
me-west1 northamerica-northeast1
northamerica-northeast1 northamerica-northeast2
northamerica-northeast2 southamerica-east1
northamerica-south1 southamerica-west1
southamerica-east1 us-central1
southamerica-west1 us-east1
us-central1 us-east4
us-east1 us-east5
us-east4 us-south1
us-east5 us-west1
us-south1 us-west2
us-west1 us-west3
us-west2 us-west4
us-west3
us-west4

enableNestedVirtualization

このフィールドは省略できます。 プライベート プールで C3 マシンタイプの VM を使用している場合は、ネストされた仮想化を有効にして、プライベート プールの VM 内で他の VM インスタンスを実行できます。詳細については、ネストされた仮想化についてをご覧ください。

次のステップ