xref: /aosp_15_r20/external/google-cloud-java/java-dataproc/.cloud/main.tf (revision 55e87721aa1bc457b326496a7ca40f3ea1a63287)
1*55e87721SMatt Gilbrideterraform {
2*55e87721SMatt Gilbride  required_providers {
3*55e87721SMatt Gilbride    google = {
4*55e87721SMatt Gilbride      source = "hashicorp/google"
5*55e87721SMatt Gilbride    }
6*55e87721SMatt Gilbride  }
7*55e87721SMatt Gilbride}
8*55e87721SMatt Gilbrideresource "google_project_service" "compute" {
9*55e87721SMatt Gilbride  service            = "compute.googleapis.com"
10*55e87721SMatt Gilbride  project            = var.inputs.project_id
11*55e87721SMatt Gilbride  count              = var.inputs.should_enable_apis_on_apply ? 1 : 0
12*55e87721SMatt Gilbride  disable_on_destroy = var.inputs.should_disable_apis_on_destroy
13*55e87721SMatt Gilbride}
14*55e87721SMatt Gilbrideresource "google_project_service" "dataproc" {
15*55e87721SMatt Gilbride  service            = "dataproc.googleapis.com"
16*55e87721SMatt Gilbride  project            = var.inputs.project_id
17*55e87721SMatt Gilbride  count              = var.inputs.should_enable_apis_on_apply ? 1 : 0
18*55e87721SMatt Gilbride  disable_on_destroy = var.inputs.should_disable_apis_on_destroy
19*55e87721SMatt Gilbride}
20*55e87721SMatt Gilbridedata "google_compute_default_service_account" "default" {
21*55e87721SMatt Gilbride  depends_on = [google_project_service.compute, google_project_service.dataproc]
22*55e87721SMatt Gilbride}
23*55e87721SMatt Gilbrideresource "google_project_iam_member" "dataproc_iam" {
24*55e87721SMatt Gilbride  project = var.inputs.project_id
25*55e87721SMatt Gilbride  role    = "roles/dataproc.worker"
26*55e87721SMatt Gilbride  member  = "serviceAccount:${data.google_compute_default_service_account.default.email}"
27*55e87721SMatt Gilbride}
28