This repository contains all setup and configuration code for the infrastructure required for the HashiConf 2024 Escape room challenge. This is a mono-repository with multiple Terraform workspaces for each domain area. For more information, please speak to Rosemary or Rob.
- Infrastructure lifecycle management (ILM) - puzzles use Waypoint, Terraform, Nomad, and Packer
- Security lifecycle management (SLM) - puzzles use Vault, Consul, and Boundary
The Instruqt tracks have been exported and are located in the instruqt/
directory.
All products use HCP except Nomad. Nomad runs on AWS EC2 instances.
The clients and workers all run on AWS in us-east-2
.
If any of the endpoints change, you will need to re-run workspaces in HCP Terraform. The workspaces require the following order:
hcp-infrastructure
nomad-infrastructure
nomad-node-pools
clues
waypoint
applications
vault-config
consul-config
boundary-config
Other technicalities:
-
HCP Terraform uses dynamic credentials for AWS. Review
hcp-infrastructure
for configuration. -
Images get pushed to HCP Packer with a GitHub Actions workflow. GitHub Actions also uses dynamic credentials, review
hcp-infrastructure
for configuration. -
Secrets get synchronized from various resources to GitHub Actions using HCP Vault Secrets. Check out
hcp-infrastructure/hvs.tf
for a list of secrets. NOTE: The sync is manually configured in HCP Vault Secrets!
- Creation of AWS credentials for
hcp-infrastructure
to configure dynamic credentials - Creation of Waypoint template
- Read-only user for escape room
In order for changes to propagate across tools, you need to change clues in a few places.
A complete list of valid clues can be found at clues/README.md
.
There are two places to update clues for infrastructure lifecycle management puzzles.
- Waypoint and Nomad
- Go to
clues/
. - Update
terraform.auto.tfvars
. - Push.
- This will run the
clues
workspace in HCP Terraform. - Run workspaces corresponding to each application.
- Go to
- Packer
- Go to
.github/workflows/packer
. - Update the
HCP_PACKER_BUILD_DETAILS
for each job.
- Go to
TODO