Files
terraform-binarylane/README.md
T
unkin-agent d4d62ffcf4
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
Split each DMZ into a postfix edge host and a WireGuard vpn host
2026-10-12 22:08:09 +11:00

32 lines
1.1 KiB
Markdown

# terraform-binarylane
Terraform/Terragrunt for BinaryLane cloud infrastructure.
## Layout
```
environments/root.hcl # consul state backend
environments/global/terragrunt.hcl
modules/binarylane/
```
`make plan` / `make apply` reconcile every unit. `make pre-commit` runs the
hooks. State lives in Consul under `infra/terraform/binarylane/<unit>/state`.
## Auth
The BinaryLane API token is read from `kv/service/terraform/binarylane` (field
`token`) and passed in as `TF_VAR_binarylane_token`; Consul state creds come
from `consul_root/au/syd1/creds/terraform-binarylane`. Both are granted to the
`terraform_binarylane` AppRole and the `woodpecker_terraform_binarylane` k8s
role in terraform-vault.
## Mail edge
Each DMZ VPC (`syd`, `mel`) holds a postfix edge host and a vpn host. The vpn
host runs wg0 to prodnxsr0020 and forwards the lab routes for its VPC; the edge
host reaches the lab through it and has no WireGuard. wg0 is bootstrapped from
a key in `user_data` (readable via the BinaryLane API); Puppet then manages it
from Vault, so rotate by replacing `wireguard_asymmetric_key.vpn` here and
letting Puppet roll it out.