4-projects/modules/ml_env/remote.tf (79 lines of code) (raw):
/**
* Copyright 2024 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 {
org_id = data.terraform_remote_state.bootstrap.outputs.common_config.org_id
billing_account = data.terraform_remote_state.bootstrap.outputs.common_config.billing_account
project_prefix = data.terraform_remote_state.bootstrap.outputs.common_config.project_prefix
projects_backend_bucket = data.terraform_remote_state.bootstrap.outputs.projects_gcs_bucket_tfstate
perimeter_name = data.terraform_remote_state.network_env.outputs.restricted_service_perimeter_name
base_network_self_link = data.terraform_remote_state.network_env.outputs.base_network_self_link
base_subnets_self_links = data.terraform_remote_state.network_env.outputs.base_subnets_self_links
base_host_project_id = data.terraform_remote_state.network_env.outputs.base_host_project_id
restricted_host_project_id = data.terraform_remote_state.network_env.outputs.restricted_host_project_id
restricted_subnets_self_links = data.terraform_remote_state.network_env.outputs.restricted_subnets_self_links
access_context_manager_policy_id = data.terraform_remote_state.network_env.outputs.access_context_manager_policy_id
env_folder_name = data.terraform_remote_state.environments_env.outputs.env_folder
app_infra_pipeline_service_accounts = data.terraform_remote_state.business_unit_shared.outputs.terraform_service_accounts
enable_cloudbuild_deploy = data.terraform_remote_state.business_unit_shared.outputs.enable_cloudbuild_deploy
environments_kms_key_ring = data.terraform_remote_state.environments_env.outputs.key_rings
environment_kms_project_id = data.terraform_remote_state.environments_env.outputs.env_kms_project_id
default_region = data.terraform_remote_state.business_unit_shared.outputs.default_region
service_catalog_project_id = data.terraform_remote_state.business_unit_shared.outputs.service_catalog_project_id
service_catalog_repo_name = data.terraform_remote_state.business_unit_shared.outputs.service_catalog_repo_name
common_artifact_project_id = data.terraform_remote_state.business_unit_shared.outputs.common_artifacts_project_id
restricted_subnets_region = flatten([
for subnet in local.restricted_subnets_self_links :
{
subnet = element(split("/", subnet), index(split("/", subnet), "subnetworks", ) + 1, )
region = element(split("/", subnet), index(split("/", subnet), "regions") + 1, )
}
])
}
data "terraform_remote_state" "bootstrap" {
backend = "gcs"
config = {
bucket = var.remote_state_bucket
prefix = "terraform/bootstrap/state"
}
}
data "terraform_remote_state" "org" {
backend = "gcs"
config = {
bucket = var.remote_state_bucket
prefix = "terraform/org/state"
}
}
data "terraform_remote_state" "network_env" {
backend = "gcs"
config = {
bucket = var.remote_state_bucket
prefix = "terraform/networks/${var.env}"
}
}
data "terraform_remote_state" "environments_env" {
backend = "gcs"
config = {
bucket = var.remote_state_bucket
prefix = "terraform/environments/${var.env}"
}
}
data "terraform_remote_state" "business_unit_shared" {
backend = "gcs"
config = {
bucket = local.projects_backend_bucket
prefix = "terraform/projects/${var.business_unit}/shared"
}
}