0-bootstrap/outputs.tf (133 lines of code) (raw):

/** * Copyright 2021 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 "seed_project_id" { description = "Project where service accounts and core APIs will be enabled." value = module.seed_bootstrap.seed_project_id } output "bootstrap_step_terraform_service_account_email" { description = "Bootstrap Step Terraform Account" value = google_service_account.terraform-env-sa["bootstrap"].email } output "projects_step_terraform_service_account_email" { description = "Projects Step Terraform Account" value = google_service_account.terraform-env-sa["proj"].email } output "networks_step_terraform_service_account_email" { description = "Networks Step Terraform Account" value = google_service_account.terraform-env-sa["net"].email } output "environment_step_terraform_service_account_email" { description = "Environment Step Terraform Account" value = google_service_account.terraform-env-sa["env"].email } output "organization_step_terraform_service_account_email" { description = "Organization Step Terraform Account" value = google_service_account.terraform-env-sa["org"].email } output "gcs_bucket_tfstate" { description = "Bucket used for storing terraform state for Foundations Pipelines in Seed Project." value = module.seed_bootstrap.gcs_bucket_tfstate } output "common_config" { description = "Common configuration data to be used in other steps." value = { org_id = var.org_id, parent_folder = var.parent_folder, billing_account = var.billing_account, default_region = var.default_region, project_prefix = var.project_prefix, folder_prefix = var.folder_prefix parent_id = local.parent bootstrap_folder_name = google_folder.bootstrap.name } } output "group_org_admins" { description = "Google Group for GCP Organization Administrators." value = var.groups.create_groups == true ? module.required_group["group_org_admins"].id : var.group_org_admins } output "group_billing_admins" { description = "Google Group for GCP Billing Administrators." value = var.groups.create_groups == true ? module.required_group["group_billing_admins"].id : var.group_billing_admins } output "required_groups" { description = "List of Google Groups created that are required by the Example Foundation steps." value = var.groups.create_groups == true ? module.required_group : {} } output "optional_groups" { description = "List of Google Groups created that are optional to the Example Foundation steps." value = var.groups.create_groups == true ? module.optional_group : {} } /* ---------------------------------------- Specific to cloudbuild_module ---------------------------------------- */ # Comment-out the cloudbuild_bootstrap module and its outputs if you want to use GitHub Actions, Jenkins, or Terraform Cloud instead of Cloud Build output "cloudbuild_project_id" { description = "Project where Cloud Build configuration and terraform container image will reside." value = module.tf_source.cloudbuild_project_id } output "gcs_bucket_cloudbuild_artifacts" { description = "Bucket used to store Cloud Build artifacts in cicd project." value = { for key, value in module.tf_workspace : key => replace(value.artifacts_bucket, local.bucket_self_link_prefix, "") } } output "gcs_bucket_cloudbuild_logs" { description = "Bucket used to store Cloud Build logs in cicd project." value = { for key, value in module.tf_workspace : key => replace(value.logs_bucket, local.bucket_self_link_prefix, "") } } output "projects_gcs_bucket_tfstate" { description = "Bucket used for storing terraform state for stage 4-projects foundations pipelines in seed project." value = module.gcp_projects_state_bucket.bucket.name } output "cloud_builder_artifact_repo" { description = "Artifact Registry (AR) Repository created to store TF Cloud Builder images." value = "projects/${module.tf_source.cloudbuild_project_id}/locations/${var.default_region}/repositories/${module.tf_cloud_builder.artifact_repo}" } output "csr_repos" { description = "List of Cloud Source Repos created by the module, linked to Cloud Build triggers." value = { for k, v in module.tf_source.csr_repos : k => { "id" = v.id, "name" = v.name, "project" = v.project, "url" = v.url, } } } output "cloud_build_private_worker_pool_id" { description = "ID of the Cloud Build private worker pool." value = module.tf_private_pool.private_worker_pool_id } output "cloud_build_worker_range_id" { description = "The Cloud Build private worker IP range ID." value = module.tf_private_pool.worker_range_id } output "cloud_build_worker_peered_ip_range" { description = "The IP range of the peered service network." value = module.tf_private_pool.worker_peered_ip_range } output "cloud_build_peered_network_id" { description = "The ID of the Cloud Build peered network." value = module.tf_private_pool.peered_network_id } /* ---------------------------------------- Specific to github_bootstrap ---------------------------------------- */ # Un-comment github_bootstrap and its outputs if you want to use GitHub Actions instead of Cloud Build # output "cicd_project_id" { # description = "Project where the CI/CD infrastructure for GitHub Action resides." # value = module.gh_cicd.project_id # } # output "projects_gcs_bucket_tfstate" { # description = "Bucket used for storing terraform state for stage 4-projects foundations pipelines in seed project." # value = module.seed_bootstrap.gcs_bucket_tfstate # } /* ---------------------------------------- Specific to jenkins_bootstrap module ---------------------------------------- */ # # Un-comment the jenkins_bootstrap module and its outputs if you want to use Jenkins instead of Cloud Build # output "cicd_project_id" { # description = "Project where the [CI/CD Pipeline](/docs/GLOSSARY.md#foundation-cicd-pipeline) (Jenkins Agents and terraform builder container image) reside." # value = module.jenkins_bootstrap.cicd_project_id # } # output "jenkins_agent_gce_instance_id" { # description = "Jenkins Agent GCE Instance id." # value = module.jenkins_bootstrap.jenkins_agent_gce_instance_id # } # output "jenkins_agent_vpc_id" { # description = "Jenkins Agent VPC name." # value = module.jenkins_bootstrap.jenkins_agent_vpc_id # } # output "projects_gcs_bucket_tfstate" { # description = "Bucket used for storing terraform state for stage 4-projects foundations pipelines in seed project." # value = module.seed_bootstrap.gcs_bucket_tfstate # } # output "jenkins_agent_sa_email" { # description = "Email for privileged custom service account for Jenkins Agent GCE instance." # value = module.jenkins_bootstrap.jenkins_agent_sa_email # } # output "jenkins_agent_sa_name" { # description = "Fully qualified name for privileged custom service account for Jenkins Agent GCE instance." # value = module.jenkins_bootstrap.jenkins_agent_sa_name # } # output "gcs_bucket_jenkins_artifacts" { # description = "Bucket used to store Jenkins artifacts in Jenkins project." # value = module.jenkins_bootstrap.gcs_bucket_jenkins_artifacts # } /* ---------------------------------------- Specific to tfc_bootstrap ---------------------------------------- */ # Un-comment tfc_bootstrap and its outputs if you want to use Terraform Cloud instead of Cloud Build # output "cicd_project_id" { # description = "Project where the CI/CD infrastructure for Terraform Cloud resides." # value = module.tfc_cicd.project_id # } # # output "tfc_org_name" { # description = "Name of the TFC organization." # value = var.tfc_org_name # } /* ---------------------------------------- Specific to tfc_bootstrap with Terraform Cloud Agents ---------------------------------------- */ # Un-comment if you want to use Terraform Cloud Agents # (In other words, un-comment if you set enable_tfc_cloud_agents to true on .tfvars) # output "kubernetes_endpoint" { # description = "The GKE cluster endpoint" # sensitive = true # value = module.tfc_agent_gke[0].kubernetes_endpoint # } # output "service_account" { # description = "The default service account used for TFC agent nodes" # value = module.tfc_agent_gke[0].service_account # } # output "cluster_name" { # description = "GKE cluster name" # value = module.tfc_agent_gke[0].cluster_name # } # output "hub_cluster_membership_id" { # value = module.tfc_agent_gke[0].hub_cluster_membership_id # description = "The ID of the cluster membership" # }