nabeo がピーしているブログ (仮)

どーも、nabeop です

Terraform で Google Beta API をつかう

2行でまとめると

  • プロバイダは googlegoogle-beta の両方を定義する
  • 必要な時だけ google-beta プロバイダをつかうと宣言する

という感じ。

モノによっては Google Beta API をつかう必要がある。Terraform の Google Cloud 向けプロバイダでは API の種別ごとに googlegoogle-beta というプロバイダが用意されている。googlegoogle-beta については Google Provider Versions - Terraform by HashiCorp で説明されている。

具体的な例は以下のとおり。

2つのプロバイダを定義する。

provider "google" {
  credentials = file("account.json")
  project     = "sample"
  region      = "asia-northeast1"
}

provider "google-beta" {
  credentials = file("account.json")
  project     = "sample"
  region      = "asia-northeast1"
}

shared-vpc-host-projectというプロジェクトの定義では google プロバイダを使用するが、shared-vpc-host-project を共有 VPC として有効にするときは google-beta プロバイダを利用する。

resource "google_project" "shared_vpc_host_project" {
  name       = "shared VPC Host Project"
  project_id = "shared-vpc-host-project"
}

resource "google_compute_shared_vpc_host_project" "shared_vpc_host_project" {
 # フォルダ単位でロールをつけているので beta API をつかう必要がある
  provider = google-beta
  project  = google_project.shared_vpc_host_project.project_id
}