terraform { required_version = ">= 1.5" required_providers { google = { source = "hashicorp/google" version = "~> 5.0" } google-beta = { source = "hashicorp/google-beta" version = "~> 5.0" } random = { source = "hashicorp/random" version = "~> 3.6" } cloudflare = { source = "cloudflare/cloudflare" version = "~> 4.0" } } backend "s3" { bucket = "legion-terraform-state" key = "gcp/terraform.tfstate" region = "auto" endpoint = "https://651161e0a3d321561b4c90b5bcd5f15b.r2.cloudflarestorage.com" # R2 is S3-compatible but not AWS — skip AWS-specific checks skip_credentials_validation = true skip_metadata_api_check = true skip_region_validation = true force_path_style = true } } provider "google" { project = var.project_id region = "us-central1" } provider "google-beta" { project = var.project_id region = "us-central1" } # Cloudflare provider — reads CLOUDFLARE_API_KEY + CLOUDFLARE_EMAIL from env. # (Global API key, not a scoped API token.) provider "cloudflare" { api_key = var.cloudflare_api_key email = var.cloudflare_email }