Skip to main content
The repo declares resources. Terrakube owns execution and state. OpenBao mints the AWS session.

Repo shape

versions.tf declares OpenTofu, providers, and the Terrakube cloud block. The workspace coordinates come from the repo-owned environment contract, not from a committed internal hostname.

Credentials

Terrakube gives the run a short-lived OpenBao identity. The Vault provider uses that native identity, and an ephemeral AWS credentials resource mints a scoped STS session for the AWS provider. No long-lived AWS key, aws-vault profile, Doppler value, or Terrakube secret variable is in the path.
The OpenBao role, policy, and AWS trust relationship are platform-owned. A workspace can mint only the role assigned to it.

Validate and run

CI stays credential-free:
Plans and applies run remotely:
Terrakube queues concurrent runs, stores state versions, and records approval. Provider and module packages resolve through the homelab mirror.