live/prod/apis/terragrunt.hcl (35 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 # https://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. skip = false include "common" { path = find_in_parent_folders("common.hcl") } locals { common_vars = read_terragrunt_config(find_in_parent_folders("shared.hcl")) config = yamldecode(file("${get_repo_root()}/config.yml")) envConfig = local.config[basename(dirname("${get_terragrunt_dir()}../../"))] } terraform { source = "${get_repo_root()}/modules/apis" before_hook "enable_resource_manager_api" { commands = ["plan", "apply"] execute = ["gcloud", "services", "enable", "cloudresourcemanager.googleapis.com", "--project=${local.envConfig["projectId"]}"] } after_hook "allow_api_propagation" { commands = ["apply"] execute = ["sleep", "60"] run_on_error = false } } inputs = { // Reference your shared list of APIs to enable here (these should be consistent across all environments) services = local.common_vars.inputs.services }