diff options
Diffstat (limited to 'infra/tf/backups-bucket/main.tf')
| -rw-r--r-- | infra/tf/backups-bucket/main.tf | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/infra/tf/backups-bucket/main.tf b/infra/tf/backups-bucket/main.tf new file mode 100644 index 0000000..a86e582 --- /dev/null +++ b/infra/tf/backups-bucket/main.tf @@ -0,0 +1,43 @@ +terraform { + required_version = ">= 1.0" + + required_providers { + google = { + source = "hashicorp/google" + version = ">= 5.0" + } + } + + backend "gcs" { + bucket = "fcuny-infra-tofu-state" + prefix = "backups" + } +} + +provider "google" { + project = var.project_id + region = var.region +} + +resource "google_storage_bucket" "backups" { + name = var.bucket_name + location = var.location + uniform_bucket_level_access = var.uniform_bucket_level_access + force_destroy = var.force_destroy + public_access_prevention = var.public_access_prevention + storage_class = var.storage_class + + # Optional: Add lifecycle rules for cost optimization + dynamic "lifecycle_rule" { + for_each = var.lifecycle_rules + content { + condition { + age = lifecycle_rule.value.age + } + action { + type = lifecycle_rule.value.action + storage_class = lifecycle_rule.value.storage_class + } + } + } +} |
