aboutsummaryrefslogtreecommitdiff
path: root/infra/tf/backups-bucket/main.tf
diff options
context:
space:
mode:
Diffstat (limited to 'infra/tf/backups-bucket/main.tf')
-rw-r--r--infra/tf/backups-bucket/main.tf43
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
+ }
+ }
+ }
+}