A repository containing a collection of common infrastructure modules for encapsulating common Cloud Run patterns.
To use components in this library, you must provide the project
in a
provider.google
resource in your top-level main.tf:
provider "google" {
project = var.project
}
All modules in this repository follow a consistent labeling pattern for GCP cost allocation and resource organization:
locals {
default_labels = {
basename(abspath(path.module)) = var.name
terraform-module = basename(abspath(path.module))
}
squad_label = var.squad != "" ? {
squad = var.squad
team = var.squad
} : {}
merged_labels = merge(local.default_labels, local.squad_label, var.labels)
}
This pattern:
- Enables cost tracking to break down each module by use
- Maintains consistency across all infrastructure modules
- Supports team attribution through squad/team labels
- Allows custom labels via the
labels
variable - Provides module identification via the
terraform-module
label
The basename(abspath(path.module))
automatically derives the module name (e.g., "gke", "redis", "workqueue") without requiring hardcoded values.