Terraform Google Folder Structure
This project provides a flexible and scalable folder structure for organizing resources within the Google Cloud Platform.
Modules
Folders
The proj_folders
module is responsible for managing the folder hierarchy related to data projion.
Example usage:
Dependencies
- Terraform v0.12 or higher
- Google Cloud Platform account with necessary permissions
Info
From this point on the document is autogenerated, don't modify it directly
Code
Project A
Creates the required folders for a project: a parent with 6 nested folder environments
module "projecta_folders" {
source = "../modules/google_folder"
folders = {
"${var.owner}-projecta" = { external_parent_id = module.folders.id["BussinesUnits"] },
"${var.owner}-projecta-dev" = {
name = "dev"
parent_entry_key = "${var.owner}-projecta"
},
"${var.owner}-projecta-stage" = {
name = "stage",
parent_entry_key = "${var.owner}-projecta"
},
"${var.owner}-projecta-qa" = {
name = "qa"
parent_entry_key = "${var.owner}-projecta"
},
"${var.owner}-projecta-prodfix" = {
name = "prodfix"
parent_entry_key = "${var.owner}-projecta"
},
"${var.owner}-projecta-prod" = {
name = "prod"
parent_entry_key = "${var.owner}-projecta"
},
"${var.owner}-projecta-dr" = {
name = "dr"
parent_entry_key = "${var.owner}-projecta"
},
}
}
Project B
Creates the required folders for a project: a parent with 6 nested folder environments
module "projectb_folders" {
source = "../modules/google_folder"
folders = {
"${var.owner}-projectb" = { external_parent_id = module.folders.id["BussinesUnits"] },
"${var.owner}-projectb-dev" = {
name = "dev"
parent_entry_key = "${var.owner}-projectb"
},
"${var.owner}-projectb-stage" = {
name = "stage",
parent_entry_key = "${var.owner}-projectb"
},
"${var.owner}-projectb-qa" = {
name = "qa"
parent_entry_key = "${var.owner}-projectb"
},
"${var.owner}-projectb-prodfix" = {
name = "prodfix"
parent_entry_key = "${var.owner}-projectb"
},
"${var.owner}-projectb-prod" = {
name = "prod"
parent_entry_key = "${var.owner}-projectb"
},
"${var.owner}-projectb-dr" = {
name = "dr"
parent_entry_key = "${var.owner}-projectb"
},
}
}
Project C
Creates the required folders for a project: a parent with 6 nested folder environments.
module "projectc_folders" {
source = "../modules/google_folder"
folders = {
"${var.owner}-projectc" = { external_parent_id = module.folders.id["BussinesUnits"] },
"${var.owner}-projectc-dev" = {
name = "dev"
parent_entry_key = "${var.owner}-projectc"
},
"${var.owner}-projectc-stage" = {
name = "stage",
parent_entry_key = "${var.owner}-projectc"
},
"${var.owner}-projectc-qa" = {
name = "qa"
parent_entry_key = "${var.owner}-projectc"
},
"${var.owner}-projectc-prodfix" = {
name = "prodfix"
parent_entry_key = "${var.owner}-projectc"
},
"${var.owner}-projectc-prod" = {
name = "prod"
parent_entry_key = "${var.owner}-projectc"
},
"${var.owner}-projectc-dr" = {
name = "dr"
parent_entry_key = "${var.owner}-projectc"
},
}
}