diff --git a/web/terraform-checkpoints/create-firebase-project-checkpoint.tf b/web/terraform-checkpoints/create-firebase-project-checkpoint.tf index bc6afebfa..dbf0acfc2 100644 --- a/web/terraform-checkpoints/create-firebase-project-checkpoint.tf +++ b/web/terraform-checkpoints/create-firebase-project-checkpoint.tf @@ -3,7 +3,7 @@ terraform { required_providers { google-beta = { source = "hashicorp/google-beta" - version = "~> 4.0" + version = "~> 6.0" } } } @@ -27,11 +27,7 @@ resource "google_project" "default" { # TODO: REPLACE WITH YOUR OWN VALUES name = "" project_id = "" - - # Required for the project to display in any list of Firebase projects. - labels = { - "firebase" = "enabled" - } + billing_account = "" } # Enable the required underlying Service Usage API. diff --git a/web/terraform-checkpoints/register-app-checkpoint.tf b/web/terraform-checkpoints/register-app-checkpoint.tf index f76747fed..b18c831d9 100644 --- a/web/terraform-checkpoints/register-app-checkpoint.tf +++ b/web/terraform-checkpoints/register-app-checkpoint.tf @@ -3,7 +3,7 @@ terraform { required_providers { google-beta = { source = "hashicorp/google-beta" - version = "~> 4.0" + version = "~> 6.0" } } } @@ -27,11 +27,7 @@ resource "google_project" "default" { # TODO: REPLACE WITH YOUR OWN VALUES name = "" project_id = "" - - # Required for the project to display in any list of Firebase projects. - labels = { - "firebase" = "enabled" - } + billing_account = "" } # Enable the required underlying Service Usage API. @@ -76,5 +72,4 @@ resource "google_firebase_web_app" "default" { project = google_firebase_project.default.project # TODO: REPLACE WITH YOUR OWN VALUE display_name = "" - deletion_policy = "DELETE" } diff --git a/web/terraform-checkpoints/replicate-config/main-foreach.tf b/web/terraform-checkpoints/replicate-config/main-foreach.tf index 0eb3b8116..aac98db02 100644 --- a/web/terraform-checkpoints/replicate-config/main-foreach.tf +++ b/web/terraform-checkpoints/replicate-config/main-foreach.tf @@ -3,7 +3,7 @@ terraform { required_providers { google-beta = { source = "hashicorp/google-beta" - version = "~> 4.0" + version = "~> 6.0" } } } @@ -30,11 +30,6 @@ resource "google_project" "default" { # Required if you want to set up Authentication via Terraform billing_account = "" - # Required for the projects to display in any list of Firebase projects. - labels = { - "firebase" = "enabled" - } - # TODO: REPLACE WITH YOUR OWN VALUES for_each = { prod = "" @@ -88,7 +83,6 @@ resource "google_firebase_web_app" "default" { project = each.value.project # TODO: REPLACE WITH YOUR OWN VALUE display_name = "" - deletion_policy = "DELETE" } # UNCOMMENT BELOW IF YOU SET UP FIREBASE AUTHENTICATION USING TERRAFORM IN THE PREVIOUS STEP @@ -256,30 +250,27 @@ resource "google_project_service" "firebasestorage" { disable_on_destroy = false } -# Provision the default Cloud Storage bucket for the project via Google App Engine. -resource "google_app_engine_application" "default" { +# Provision a Cloud Storage bucket for the project +resource "google_storage_bucket" "my_buckets" { provider = google-beta for_each = google_firebase_project.default project = each.value.project - # See available locations: https://firebase.google.com/docs/projects/locations#default-cloud-location - # This will set the location for the default Storage bucket and the App Engine App. - # TODO: REPLACE WITH YOUR OWN VALUE - location_id = "" # Must be in the same location as Firestore (above) - # Wait until Firestore is provisioned first. - depends_on = [ - google_firestore_database.default - ] + # TODO: name your bucket + name = "${each.value.project}-" + # TODO: See available locations https://cloud.google.com/storage/docs/locations + location = "" + force_destroy = true } -# Make the default Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules. -resource "google_firebase_storage_bucket" "default_bucket" { +# Make the Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules. +resource "google_firebase_storage_bucket" "my_buckets" { provider = google-beta for_each = google_firebase_project.default project = each.value.project - bucket_id = google_app_engine_application.default[each.key].default_bucket + bucket_id = google_storage_bucket.my_buckets[each.key].name depends_on = [ google_project_service.firebasestorage, @@ -302,19 +293,19 @@ resource "google_firebaserules_ruleset" "storage" { } } - # Wait for the default Storage bucket to be provisioned before creating this ruleset. + # Wait for the Storage bucket to be provisioned before creating this ruleset. depends_on = [ - google_firebase_storage_bucket.default_bucket, + google_firebase_storage_bucket.my_buckets, ] } -# Release the ruleset to the default Storage bucket. -resource "google_firebaserules_release" "default_bucket" { +# Release the ruleset to the Storage bucket. +resource "google_firebaserules_release" "my_buckets" { provider = google-beta for_each = google_firebase_project.default - name = "firebase.storage/${google_app_engine_application.default[each.key].default_bucket}" - ruleset_name = "projects/${google_firebase_project.default[each.key].project}/rulesets/${google_firebaserules_ruleset.storage[each.key].name}" + name = "firebase.storage/${google_storage_bucket.my_buckets[each.key].name}" + ruleset_name = google_firebaserules_ruleset.storage[each.key].name project = each.value.project lifecycle { diff --git a/web/terraform-checkpoints/replicate-config/main_staging-copypaste.tf b/web/terraform-checkpoints/replicate-config/main_staging-copypaste.tf index a47151196..d528ee8e2 100644 --- a/web/terraform-checkpoints/replicate-config/main_staging-copypaste.tf +++ b/web/terraform-checkpoints/replicate-config/main_staging-copypaste.tf @@ -3,15 +3,9 @@ resource "google_project" "staging" { provider = google-beta.no_user_project_override # TODO: REPLACE WITH YOUR OWN VALUES - name = "" - project_id = "" - # UNCOMMENT BELOW IF YOU IF YOU SET UP FIREBASE AUTHENTICATION USING TERRAFORM IN THE PREVIOUS STEP - # billing_account = "" - - # Required for the project to display in any list of Firebase projects. - labels = { - "firebase" = "enabled" - } + name = "" + project_id = "" + billing_account = "" } # Enable the required underlying Service Usage API. @@ -53,10 +47,9 @@ resource "google_firebase_project" "staging" { resource "google_firebase_web_app" "staging" { provider = google-beta - project = google_firebase_project.staging.project + project = google_firebase_project.staging.project # TODO: REPLACE WITH YOUR OWN VALUE - display_name = "" - deletion_policy = "DELETE" + display_name = "" } # UNCOMMENT BELOW IF YOU SET UP FIREBASE AUTHENTICATION USING TERRAFORM IN THE PREVIOUS STEP @@ -200,29 +193,24 @@ resource "google_project_service" "storage_staging" { disable_on_destroy = false } -# Provision the default Cloud Storage bucket for the project via Google App Engine. -resource "google_app_engine_application" "staging" { +# Provision a Cloud Storage bucket for the project +resource "google_storage_bucket" "my_bucket_staging" { provider = google-beta + project = google_firebase_project.staging.project - project = google_firebase_project.staging.project - # See available locations: https://firebase.google.com/docs/projects/locations#default-cloud-location - # This will set the location for the default Storage bucket and the App Engine App. - # TODO: REPLACE WITH YOUR OWN VALUE - location_id = "" # Must be in the same location as Firestore (above) - - # Wait until Firestore is provisioned first. - depends_on = [ - google_firestore_database.staging - ] + # TODO: name your bucket + name = "" + # TODO: See available locations https://cloud.google.com/storage/docs/locations + location = "" + force_destroy = true } -# Make the default Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules. -resource "google_firebase_storage_bucket" "default_bucket_staging" { +# Make the Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules. +resource "google_firebase_storage_bucket" "my_bucket_staging" { provider = google-beta project = google_firebase_project.staging.project - bucket_id = google_app_engine_application.staging.default_bucket - + bucket_id = google_storage_bucket.my_bucket_staging.name depends_on = [ google_project_service.storage_staging @@ -243,18 +231,18 @@ resource "google_firebaserules_ruleset" "storage_staging" { } } - # Wait for the default Storage bucket to be provisioned before creating this ruleset. + # Wait for the Storage bucket to be provisioned before creating this ruleset. depends_on = [ - google_firebase_storage_bucket.default_bucket_staging, + google_firebase_storage_bucket.my_bucket_staging, ] } -# Release the ruleset to the default Storage bucket. -resource "google_firebaserules_release" "default_bucket_staging" { +# Release the ruleset to the Storage bucket. +resource "google_firebaserules_release" "my_bucket_staging" { provider = google-beta - name = "firebase.storage/${google_app_engine_application.staging.default_bucket}" - ruleset_name = "projects/${google_firebase_project.staging.project}/rulesets/${google_firebaserules_ruleset.storage_staging.name}" + name = "firebase.storage/${google_storage_bucket.my_bucket_staging.name}" + ruleset_name = google_firebaserules_ruleset.storage_staging.name project = google_firebase_project.staging.project lifecycle { diff --git a/web/terraform-checkpoints/set-up-auth-checkpoint.tf b/web/terraform-checkpoints/set-up-auth-checkpoint.tf index bad033a0c..96d6bfd38 100644 --- a/web/terraform-checkpoints/set-up-auth-checkpoint.tf +++ b/web/terraform-checkpoints/set-up-auth-checkpoint.tf @@ -3,7 +3,7 @@ terraform { required_providers { google-beta = { source = "hashicorp/google-beta" - version = "~> 4.0" + version = "~> 6.0" } } } @@ -28,11 +28,6 @@ resource "google_project" "default" { name = "" project_id = "" billing_account = "" - - # Required for the project to display in any list of Firebase projects. - labels = { - "firebase" = "enabled" - } } # Enable the required underlying Service Usage API. @@ -77,7 +72,6 @@ resource "google_firebase_web_app" "default" { project = google_firebase_project.default.project # TODO: REPLACE WITH YOUR OWN VALUE display_name = "" - deletion_policy = "DELETE" } # Enable the Identity Toolkit API. diff --git a/web/terraform-checkpoints/set-up-firestore-checkpoint.tf b/web/terraform-checkpoints/set-up-firestore-checkpoint.tf index 75d43801a..9c7df39ec 100644 --- a/web/terraform-checkpoints/set-up-firestore-checkpoint.tf +++ b/web/terraform-checkpoints/set-up-firestore-checkpoint.tf @@ -3,7 +3,7 @@ terraform { required_providers { google-beta = { source = "hashicorp/google-beta" - version = "~> 4.0" + version = "~> 6.0" } } } @@ -27,13 +27,7 @@ resource "google_project" "default" { # TODO: REPLACE WITH YOUR OWN VALUES name = "" project_id = "" - # UNCOMMENT BELOW IF YOU IF YOU SET UP FIREBASE AUTHENTICATION USING TERRAFORM IN THE PREVIOUS STEP - # billing_account = "" - - # Required for the project to display in any list of Firebase projects. - labels = { - "firebase" = "enabled" - } + billing_account = "" } # Enable the required underlying Service Usage API. @@ -78,7 +72,6 @@ resource "google_firebase_web_app" "default" { project = google_firebase_project.default.project # TODO: REPLACE WITH YOUR OWN VALUE display_name = "" - deletion_policy = "DELETE" } # UNCOMMENT BELOW IF YOU SET UP FIREBASE AUTHENTICATION USING TERRAFORM IN THE PREVIOUS STEP diff --git a/web/terraform-checkpoints/set-up-storage-checkpoint.tf b/web/terraform-checkpoints/set-up-storage-checkpoint.tf index 0fd6dc9c8..aea2f1a69 100644 --- a/web/terraform-checkpoints/set-up-storage-checkpoint.tf +++ b/web/terraform-checkpoints/set-up-storage-checkpoint.tf @@ -2,8 +2,8 @@ terraform { required_providers { google-beta = { - source = "hashicorp/google-beta" - version = "~> 4.0" + source = "hashicorp/google-beta" + version = "~> 6.0" } } } @@ -25,15 +25,9 @@ resource "google_project" "default" { provider = google-beta.no_user_project_override # TODO: REPLACE WITH YOUR OWN VALUES - name = "" - project_id = "" - # UNCOMMENT BELOW IF YOU IF YOU SET UP FIREBASE AUTHENTICATION USING TERRAFORM IN THE PREVIOUS STEP - # billing_account = "" - - # Required for the project to display in any list of Firebase projects. - labels = { - "firebase" = "enabled" - } + name = "" + project_id = "" + billing_account = "" } # Enable the required underlying Service Usage API. @@ -75,10 +69,9 @@ resource "google_firebase_project" "default" { resource "google_firebase_web_app" "default" { provider = google-beta - project = google_firebase_project.default.project + project = google_firebase_project.default.project # TODO: REPLACE WITH YOUR OWN VALUE - display_name = "" - deletion_policy = "DELETE" + display_name = "" } # UNCOMMENT BELOW IF YOU SET UP FIREBASE AUTHENTICATION USING TERRAFORM IN THE PREVIOUS STEP @@ -222,28 +215,24 @@ resource "google_project_service" "storage" { disable_on_destroy = false } -# Provision the default Cloud Storage bucket for the project via Google App Engine. -resource "google_app_engine_application" "default" { +# Provision a Cloud Storage bucket for the project +resource "google_storage_bucket" "my_bucket" { provider = google-beta + project = google_firebase_project.default.project - project = google_firebase_project.default.project - # See available locations: https://firebase.google.com/docs/projects/locations#default-cloud-location - # This will set the location for the default Storage bucket and the App Engine App. - # TODO: REPLACE WITH YOUR OWN VALUE - location_id = "" # Must be in the same location as Firestore (above) - - # Wait until Firestore is provisioned first. - depends_on = [ - google_firestore_database.default - ] + # TODO: name your bucket + name = "" + # TODO: See available locations https://cloud.google.com/storage/docs/locations + location = "" + force_destroy = true } -# Make the default Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules. -resource "google_firebase_storage_bucket" "default_bucket" { +# Make the Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules. +resource "google_firebase_storage_bucket" "my_bucket" { provider = google-beta project = google_firebase_project.default.project - bucket_id = google_app_engine_application.default.default_bucket + bucket_id = google_storage_bucket.my_bucket.name depends_on = [ google_project_service.storage @@ -264,18 +253,18 @@ resource "google_firebaserules_ruleset" "storage" { } } - # Wait for the default Storage bucket to be provisioned before creating this ruleset. + # Wait for the Storage bucket to be provisioned before creating this ruleset. depends_on = [ - google_firebase_storage_bucket.default_bucket, + google_firebase_storage_bucket.my_bucket, ] } -# Release the ruleset to the default Storage bucket. -resource "google_firebaserules_release" "default_bucket" { +# Release the ruleset to the Storage bucket. +resource "google_firebaserules_release" "my_bucket" { provider = google-beta - name = "firebase.storage/${google_app_engine_application.default.default_bucket}" - ruleset_name = "projects/${google_firebase_project.default.project}/rulesets/${google_firebaserules_ruleset.storage.name}" + name = "firebase.storage/${google_storage_bucket.my_bucket.name}" + ruleset_name = google_firebaserules_ruleset.storage.name project = google_firebase_project.default.project lifecycle {