Skip to content

Infrastructure as Code (IaC) example for Google Cloud Platform Terraform backend.

License

Notifications You must be signed in to change notification settings

osinfra-io/google-cloud-terraform-backend

Google Cloud Platform - Terraform Backend

GitHub Actions:

Dependabot

Infracost:

infracost

💵 Monthly estimates based on Infracost baseline costs.

📄 Repository Description

This repository builds the Terraform backend for state management. Terraform uses persisted state data to keep track of the resources it manages. Most non-trivial Terraform configurations use a backend to store state remotely. This lets multiple people access the state data and work together on that collection of infrastructure resources. This repository aligns with our Google Cloud landing zone platform design. A landing zone should be a prerequisite to deploying enterprise workloads in a cloud environment.

🏭 Platform Information

Development

Our focus is on the core fundamental practice of platform engineering, Infrastructure as Code.

Open Source Infrastructure (as Code) is a development model for infrastructure that focuses on open collaboration and applying relative lessons learned from software development practices that organizations can use internally at scale. - Open Source Infrastructure (as Code)

To avoid slowing down stream-aligned teams, we want to open up the possibility for contributions. The Open Source Infrastructure (as Code) model allows team members external to the platform team to contribute with only a slight increase in cognitive load. This section is for developers who want to contribute to this repository, describing the tools used, the skills, and the knowledge required, along with Terraform documentation.

See the documentation for setting up a development environment here.

🛠️ Tools

📋 Skills and Knowledge

Links to documentation and other resources required to develop and iterate in this repository successfully.

📓 Terraform Documentation

Providers

Name Version
google 6.3.0
random 3.6.3

Modules

Name Source Version
datadog github.com/osinfra-io/terraform-datadog-google-integration v0.3.0
project github.com/osinfra-io/terraform-google-project v0.4.0
terraform_state_storage_bucket github.com/osinfra-io/terraform-google-storage-bucket v0.2.0

Resources

Name Type
google_cloud_identity_group_membership.github_actions resource
google_service_account.github_actions resource
google_service_account_iam_member.github_actions resource
google_storage_bucket_iam_member.github_actions resource
random_id.bucket resource

Inputs

Name Description Type Default Required
billing_account The alphanumeric ID of the billing account this project belongs to string "01C550-A2C86B-B8F16B" no
billing_users_group_id The numeric ID of the billing users group string "03dy6vkm4a7ag9g" no
cis_2_2_logging_sink_project_id The CIS 2.2 logging sink benchmark project ID string n/a yes
datadog_api_key Datadog API key string n/a yes
datadog_app_key Datadog APP key string n/a yes
enable_datadog Enable Datadog integration bool false no
environment The environment suffix for example: sb (Sandbox), nonprod (Non-Production), prod (Production) string "sb" no
folder_id The numeric ID of the folder this project should be created under. Only one of org_id or folder_id may be specified string n/a yes
workload_identity_pool_name The workload identity pool name string n/a yes

Outputs

Name Description
github_actions_service_account_emails The GitHub Actions service account emails
project_id The project ID
project_number The project number
terraform_state_storage_buckets The Terraform state bucket names