Welcome!
This is my (Opinionated) Terraform Documentation site. it is meant to expand upon and augment Hashicorp's Terraform Docs and, hopefully, get you prepared to write better, safer, and more usable Terraform.
So Why Are You Doing This?
I've been doing infrastructure, DevOps, DevSecOps, etc work for a long time now, and I've noticed that there is no agreement about how folks work between any two places. This can be a source of confusion and frustration for engineers; new and experienced alike!
Therefore, I've created this site as a living document to describe what I think is a pretty good standard upon which we can all agree. It's not definitive nor comprehensive, nor is it supposed to be. This site is a just some how-tos, tips and tricks, and some decent coding standards that'll make your work easier for others to read, safer to run, and faster to develop.
As a living doc, some things won't be ready, some things may be a little old-fashioned. Hopefully, given time, the most egregious flaws will be corrected as they arise. This site is also open-source. That means anyone can go to the repo (in the upper-right corner) and fix anything they like, via a pull request.
Also, always remember:
"The best is the enemy of the good"
- Voltaire, "La Bégueule" 1770
and
"I am able to get up and dust myself off and keep moving forward. I'm very stubborn."
-Rita Moreno
How to Use this Site
Any way you want, really - there are sections to the left that cover everything from how to set up a development environment to code standards, file layout, and module design. They're nested in what I believe to be in a pretty straightforward way.
For New or Returning Folks
If someone sent you this page and you're new to Terraform, or it's been a LONG while, I'd start with Setting Up a Development Environment, then go do the Terraform Tutorials, finally, I'd come back here and read the Code Standards section.
If this is your first time here, or you're setting up a new environment, going in order from setup to code standards is pretty much how I would do it.
It's important to note that I'm going to assume at least some knowledge of the following:
- Command line usage in your chosen environment(s)
- For Windows, there will be a section in the Setup pages that will get you through to how everyone else does stuff.
- Terraform basics
And we'll cover almost everything else! So don't worry!
OK, Pete - You screwed up on page 3, line 22, blah blah blah
Oh, most likely... Tell you what - how about you contribute? I've open-sourced this repo - make a pull request at your leisure!
It's written in MKDocs, using the Material Theme. Took me most of an afternoon to learn and set up, so I figure you can do it in an hour!
Once you've got a handle on where stuff goes, click the button up above, on the right. looks like this: