-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DOPS-101 Add trussworks bootstrap to devops example #64
base: master
Are you sure you want to change the base?
Conversation
Updated README to point to bootstrap project for setting up terraform backend. Updated main terraform project's backend with the S3 and DynamoDB tables generated using default bootstrap values.
This alias needs to match the one used in bootstrap project to use correct names for S3 bucket and DynamoDB table.
We validate the backend in our CI and need the S3 and DynamoDB resources to exist for that to pass.
Terraform does not allow interpolation of values in backend block. This is because it executes backend way before other stuff.
Ran Plan for 2 projects:
1. dir:
|
Ran Plan for 2 projects:
1. dir:
|
Apparently, using variables without interpolation doesn't work with older terraform versions. In this case, 0.11.7.
Ran Plan for 2 projects:
1. dir:
|
Ran Plan for 2 projects:
1. dir:
|
1 similar comment
Ran Plan for 2 projects:
1. dir:
|
Ran Plan for 2 projects:
1. dir:
|
Use the same versions of terraform and aws provider in bootstrap as the main project. This avoids any tricky version mismatch. TODO Update terraform and aws to latest
Ran Plan for 2 projects:
1. dir:
|
Ran Plan for dir: Plan Error Show Output
|
cd98f76
to
e6ab269
Compare
Ran Plan for dir: Plan Error
|
Ran Plan for dir: Plan Error
|
Ran Plan for dir: Plan Error Show Output
|
7d60498
to
40cca15
Compare
Ran Plan for dir: Plan Error Show Output
|
Also rearrange the order of the validation scripts to fmt first
c1c9966
to
3b2c4ca
Compare
09c4ac9
to
3acff5d
Compare
3acff5d
to
c3f17f3
Compare
Proposed Changes
After research, I've found https://github.com/trussworks/terraform-aws-bootstrap to be the easiest solution for bootstrapping Terraform projects. Using this module, we can add the bootstrap infrastructure to the repo and manage it going forward.
How it works
The bootstrap module has a local backend. We need to first apply the bootstrap module to generate the resources like S3 bucket, DynamoDB table etc.
These resources can then be used in the backend of main Terraform project.
✅ Add bootstrap project
✅ Updated
README.md
with new setup instructions for Terraform project✅ Added the bootstrap state to the repo. This makes sure the terraform project is good to go without bootstrapping (if using default aliases and prefix)