main.tf (54 lines of code) (raw):
/**
* Copyright 2023 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
locals {
env_name = "composer-dbt"
project_apis = [
"bigquery.googleapis.com",
"composer.googleapis.com",
]
project_api_identities = [{
"api" : "composer.googleapis.com",
"roles" : [
"roles/composer.ServiceAgentV2Ext",
"roles/composer.serviceAgent",
]
}]
}
# Enable APIs
# See https://github.com/terraform-google-modules/terraform-google-project-factory
# The modules/project_services
module "project_services" {
source = "terraform-google-modules/project-factory/google//modules/project_services"
version = "14.3.0"
project_id = var.project_id
disable_services_on_destroy = false
disable_dependent_services = false
activate_apis = local.project_apis
activate_api_identities = local.project_api_identities
}
module "gcs_docs_bucket" {
source = "terraform-google-modules/cloud-storage/google"
version = "4.0.1"
project_id = module.project_services.project_id
prefix = module.project_services.project_id
location = var.gcs_location
randomize_suffix = false
# List of buckets to create
names = [
"docs",
]
# Composer can write to docs GCS
set_creator_roles = true
creators = [
"serviceAccount:${module.composer_service_account.email}",
]
# Add bucket viewers (for target and logs directory) here
bucket_viewers = {}
}