cloud-foundation-fabric/modules/project/outputs.tf

149 lines
4.8 KiB
HCL

/**
* Copyright 2022 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.
*/
output "custom_role_id" {
description = "Map of custom role IDs created in the project."
value = {
for k, v in google_project_iam_custom_role.roles :
# build the string manually so that role IDs can be used as map
# keys (useful for folder/organization/project-level iam bindings)
(k) => "projects/${local.prefix}${var.name}/roles/${local.custom_roles[k].name}"
}
}
output "custom_roles" {
description = "Map of custom roles resources created in the project."
value = google_project_iam_custom_role.roles
}
output "id" {
description = "Project id."
value = "${local.prefix}${var.name}"
depends_on = [
google_project.project,
data.google_project.project,
google_org_policy_policy.default,
google_project_service.project_services,
google_compute_shared_vpc_host_project.shared_vpc_host,
google_compute_shared_vpc_service_project.shared_vpc_service,
google_compute_shared_vpc_service_project.service_projects,
google_project_iam_member.shared_vpc_host_robots,
google_kms_crypto_key_iam_member.service_identity_cmek,
google_project_service_identity.jit_si,
google_project_service_identity.servicenetworking,
google_project_iam_member.servicenetworking
]
}
output "name" {
description = "Project name."
value = local.project.name
depends_on = [
google_org_policy_policy.default,
google_project_service.project_services,
google_compute_shared_vpc_service_project.service_projects,
google_project_iam_member.shared_vpc_host_robots,
google_kms_crypto_key_iam_member.service_identity_cmek
]
}
output "number" {
description = "Project number."
value = local.project.number
depends_on = [
google_org_policy_policy.default,
google_project_service.project_services,
google_compute_shared_vpc_host_project.shared_vpc_host,
google_compute_shared_vpc_service_project.shared_vpc_service,
google_compute_shared_vpc_service_project.service_projects,
google_project_iam_member.shared_vpc_host_robots,
google_kms_crypto_key_iam_member.service_identity_cmek,
google_project_service_identity.jit_si,
google_project_service_identity.servicenetworking,
google_project_iam_member.servicenetworking
]
}
# TODO: deprecate in favor of id
output "project_id" {
description = "Project id."
value = "${local.prefix}${var.name}"
depends_on = [
google_project.project,
data.google_project.project,
google_org_policy_policy.default,
google_project_service.project_services,
google_compute_shared_vpc_host_project.shared_vpc_host,
google_compute_shared_vpc_service_project.shared_vpc_service,
google_compute_shared_vpc_service_project.service_projects,
google_project_iam_member.shared_vpc_host_robots,
google_kms_crypto_key_iam_member.service_identity_cmek,
google_project_service_identity.jit_si,
google_project_service_identity.servicenetworking,
google_project_iam_member.servicenetworking
]
}
output "service_accounts" {
description = "Product robot service accounts in project."
value = {
cloud_services = local.service_account_cloud_services
default = local.service_accounts_default
robots = local.service_accounts_robots
}
depends_on = [
google_project_service.project_services,
google_kms_crypto_key_iam_member.service_identity_cmek,
google_project_service_identity.jit_si,
data.google_bigquery_default_service_account.bq_sa,
data.google_storage_project_service_account.gcs_sa
]
}
output "services" {
description = "Service APIs to enabled in the project."
value = var.services
depends_on = [
google_project_service.project_services,
google_project_service_identity.jit_si,
]
}
output "sink_writer_identities" {
description = "Writer identities created for each sink."
value = {
for name, sink in google_logging_project_sink.sink : name => sink.writer_identity
}
}
output "tag_keys" {
description = "Tag key resources."
value = {
for k, v in google_tags_tag_key.default : k => v if(
v.purpose == null || v.purpose == ""
)
}
}
output "tag_values" {
description = "Tag value resources."
value = {
for k, v in google_tags_tag_value.default :
k => v if !local.tag_values[k].tag_network
}
}