Scaffolding / Boilerplate generator for new Terraform provider projects
https://www.npmjs.com/package/generator-tfp
-
main.tf
,variables.tf
,outputs.tf
files to provider tf path -
test
using terratest -
.pre-commit-config.yaml
forterraform fmt
,terraform-docs
,check-merge-conflict
and (go fmt
,golint
) /rubocop
- terraform
pro tip: use tfenv
- pre-commit
- For tests
- To use generator using Docker, Install Docker
recommended
- To use generator using Nodejs, Install nodejs
pro tip: use nvm
Once you have Node.js installed, then install Yeoman.
npm install -g yo
Now you can install tfp.
npm install -g tfp
Note: You can also clone the project from github, and then use npm link
in the project's root directory. The link will make it so that the terraform project generator will act like you installed it using npm install -g generator-tf-proj
.
npm link
To use the included generator execute the below command in shell and provide your answers to the prompts.
yo tfp
...
? Enter name for the new terraform provider : example-provider
? Enter description for the new terraform provider : Example terraform provider
? Enter author name : author
? Choose terraform version (Use arrow keys)
❯ 1.1.5
1.1.4
Project layout generated for the new provider
example-provider
├── .editorconfig
├── .gitattributes
├── .gitignore
├── .pre-commit-config.yaml
├── README.md
├── tf
│ ├── .terraform-version
│ ├── main.tf
│ ├── outputs.tf
│ ├── providers.tf
│ └── variables.tf
├── test
└── example_test.go
Step 1
On the generated provider's root path, Initialize git repository
git init
Step 2
On the generated provider's root path, Install pre-commit hooks
pre-commit install
Step 3
For golang tests, get below libs (you can use the dockerized version)
> go get github.com/gruntwork-io/terratest/modules/terraform
> go get github.com/stretchr/testify/assert
Found a bug? feel free to raise an issue.
Pull requests are always welcome. Keen to review and merge asap.
MIT