k.rennerandClaude Opus 4.8 b27c4c8afe
ci/woodpecker/manual/deploy-infrastructure Pipeline failed
opentofu: provision Hetzner Object Storage backup buckets
Add the offsite S3 backup target that decouples cluster backups from
nas-1's local Garage, so nas-1 can be powered off nightly to save power
(and as a genuine DR improvement: backups + bootstrap secrets no longer
share a box with, and survive a rebuild of, the cluster).

Hetzner has no API to generate S3 credentials (Console-only, confirmed
empirically against the live hcloud API), so provisioning is two-part:
the keypair is created by hand in the Console, then the aminueza/minio
provider creates the buckets (k8s-cnpg, k8s-velero, k8s-secrets,
k8s-migration) over the S3 API.

- object_storage.tf: minio provider (fsn1) + for_each bucket resources
- variables_hetzner.tf: endpoint/region/keypair vars + enable flag
- providers.tf: aminueza/minio ~> 3.33
- deploy-infrastructure.yml: wire TF_VAR_hetzner_s3_{access,secret}_key
  from Woodpecker secrets into plan + apply

Bucket names mirror the current Garage layout so the cluster-side change
is only an endpoint/region/addressing swap (handled in follow-up commits,
staged paperless-first).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 13:10:43 +02:00
S
Description
No description provided
38 MiB
master
Latest
2026-01-31 15:05:31 +00:00
Languages
Go 35.3%
Shell 24.5%
Python 22.5%
Jinja 5.1%
HCL 4.8%
Other 7.7%