generator-tfp v0.1.0
Terraform Provider generator
Scaffolding / Boilerplate generator for new Terraform provider projects
Features
main.tf,variables.tf,outputs.tffiles to provider tf pathtestusing terratest.pre-commit-config.yamlforterraform fmt,terraform-docs,check-merge-conflictand (go fmt,golint) /rubocop
Prerequisites
- terraform
pro tip: use tfenv - pre-commit
- For tests
Installation
- 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 yoNow you can install tfp.
npm install -g tfpNote: 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 linkUsage
To use the included generator execute the below command in shell and provide your answers to the prompts.
With NodeJs
yo tfpPrompts
...
? 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.4Project 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.goPost generation steps
Step 1
On the generated provider's root path, Initialize git repository
git initStep 2
On the generated provider's root path, Install pre-commit hooks
pre-commit installStep 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/assertContribution
Found a bug? feel free to raise an issue.
Pull requests are always welcome. Keen to review and merge asap.
Maintainer
License
MIT
4 years ago