1terraform { 2 required_providers { 3 google = { 4 source = "hashicorp/google" 5 } 6 } 7} 8resource "google_project_service" "compute" { 9 service = "compute.googleapis.com" 10 project = var.inputs.project_id 11 count = var.inputs.should_enable_apis_on_apply ? 1 : 0 12 disable_on_destroy = var.inputs.should_disable_apis_on_destroy 13} 14resource "google_project_service" "dataproc" { 15 service = "dataproc.googleapis.com" 16 project = var.inputs.project_id 17 count = var.inputs.should_enable_apis_on_apply ? 1 : 0 18 disable_on_destroy = var.inputs.should_disable_apis_on_destroy 19} 20data "google_compute_default_service_account" "default" { 21 depends_on = [google_project_service.compute, google_project_service.dataproc] 22} 23resource "google_project_iam_member" "dataproc_iam" { 24 project = var.inputs.project_id 25 role = "roles/dataproc.worker" 26 member = "serviceAccount:${data.google_compute_default_service_account.default.email}" 27} 28