Files
watchtower-observability-stack/tofu/versions.tf
T
2026-05-09 22:30:03 -05:00

47 lines
1.3 KiB
Terraform

terraform {
required_version = ">= 1.10.0"
required_providers {
hcloud = {
source = "hetznercloud/hcloud"
version = "~> 1.48"
}
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
random = {
source = "hashicorp/random"
version = "~> 3.6"
}
tls = {
source = "hashicorp/tls"
version = "~> 4.0"
}
}
# State backend: Cloudflare R2 (S3-compatible).
# Authenticate using AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY env vars
# set to your Cloudflare R2 access key/secret. Account ID embedded in endpoint.
#
# use_lockfile = true requires OpenTofu >= 1.10 and provides native S3-based
# state locking via conditional PutObject (no DynamoDB needed; R2-compatible).
backend "s3" {
bucket = "watchtower-observability-opentofu-state"
key = "watchtower/terraform.tfstate"
region = "auto"
# Cloudflare R2 endpoint (set via -backend-config or env at init):
# endpoints = { s3 = "https://<ACCOUNT_ID>.r2.cloudflarestorage.com" }
# See backend.hcl.example.
use_lockfile = true
skip_credentials_validation = true
skip_region_validation = true
skip_metadata_api_check = true
skip_requesting_account_id = true
skip_s3_checksum = true
use_path_style = true
}
}