From 30ffa177529fd93f2fecf5fc8b02d6255288a053 Mon Sep 17 00:00:00 2001 From: Liam Pietralla Date: Thu, 26 Mar 2026 17:38:11 +1100 Subject: [PATCH] r2 remote state --- .vitepress/config.mts | 1 + docs/terraform/index.md | 3 ++- docs/terraform/remote-state-cloudflare-r2.md | 24 ++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 docs/terraform/remote-state-cloudflare-r2.md diff --git a/.vitepress/config.mts b/.vitepress/config.mts index c00d206..6db41c8 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -183,6 +183,7 @@ export default defineConfig({ collapsed: true, items: [ { text: 'Ansible Inventory Generation', link: '/terraform/ansible-inventory-generation' }, + { text: 'Remote State with Cloudflare R2', link: '/terraform/remote-state-cloudflare-r2' }, ] }, { diff --git a/docs/terraform/index.md b/docs/terraform/index.md index 1513dc4..863bb50 100644 --- a/docs/terraform/index.md +++ b/docs/terraform/index.md @@ -1,3 +1,4 @@ # Terraform Snippets and Musings -#### [Generating a Ansible Inventory File from Terraform](./ansible-inventory-generation.md) \ No newline at end of file +#### [Generating a Ansible Inventory File from Terraform](./ansible-inventory-generation.md) +#### [Remote State with Clouflare R2](./remote-state-cloudflare-r2.md) \ No newline at end of file diff --git a/docs/terraform/remote-state-cloudflare-r2.md b/docs/terraform/remote-state-cloudflare-r2.md new file mode 100644 index 0000000..b80074c --- /dev/null +++ b/docs/terraform/remote-state-cloudflare-r2.md @@ -0,0 +1,24 @@ +# Remote State with Cloudflare R2 + +The following is an example of how to use Cloudflare R2 as a remote state backend for Terraform. This allows you to store your Terraform state files in Cloudflare's object storage service, providing durability and accessibility. + +```hcl +terraform { + backend "s3" { + bucket = "" + key = "/terraform.tfstate" + + endpoints = { + s3 = "https://.r2.cloudflarestorage.com" + } + + region = "auto" + skip_credentials_validation = true + skip_metadata_api_check = true + skip_region_validation = true + skip_requesting_account_id = true + skip_s3_checksum = true + use_path_style = true + } +} +``` \ No newline at end of file