bin | ||
mgmt | ||
prod | ||
terraform-modules/packer_droplet | ||
.dir-locals.el | ||
.envrc | ||
.gitignore | ||
.ruby-version | ||
Gemfile | ||
Gemfile.lock | ||
README.md |
My personal infrastructure-as-code
This repository contains the configuration files and scripts to support the infrastructure I use for personal projects.
Terraform environment variables and config
Terraform state is stored in a DigitalOcean Spaces bucket. In order to access the bucket, the Terraform backend configuration needs the access_key
and secret_key
variables set. These variables are the DigitalOcean Spaces access key and secret key, respectively, which are generated from the DigitalOcean Spaces UI. I'm passing them to Terraform via the -backend-config
terraform init
option and pulling their values from my password manager. This operation is encapsulated in the bin/tf-init.sh
script.
The Terraform scripts also require some environment variables set:
export TF_VAR_do_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export TF_VAR_spaces_access_id=xxxxxxxxxxxxxxxxxxxx
export TF_VAR_spaces_secret_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
The do_token
is the DigitalOcean API token, generated from the DigitalOcean API console UI, and the spaces_access_id
and spaces_secret_key
are the same Spaces configuration values as above. I'm setting these variables via direnv
with a .envrc
file at the repository root.