DOPS-101 Add trussworks bootstrap to devops example#64
Open
DOPS-101 Add trussworks bootstrap to devops example#64
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.mdwith 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)