terraform/modules/gcs/main.tf (20 lines of code) (raw):
# https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/storage_bucket
resource "google_storage_bucket" "gcs_flags_bucket" {
project = var.project
name = var.gcs_flags_bucket_name
# This bucket is used by the services so let's create in the same compute region
location = var.region
force_destroy = !var.terraform_data_deletion_protection
lifecycle_rule {
condition {
# Clean up old flags to save storage and GCS operations overhead
age = 3 # days
}
action {
type = "Delete"
}
}
uniform_bucket_level_access = true
}
resource "google_storage_bucket_iam_binding" "gcs_flags_bucket_iam_bindings" {
bucket = google_storage_bucket.gcs_flags_bucket.name
role = "roles/storage.objectAdmin"
members = var.gcs_flags_bucket_admins
}