generator-tfp
v0.1.0
Published
Scaffolding for Terraform provider project
Downloads
2
Maintainers
Readme
Terraform Provider generator
Scaffolding / Boilerplate generator for new Terraform provider projects
Features
main.tf
,variables.tf
,outputs.tf
files to provider tf pathtest
using terratest.pre-commit-config.yaml
forterraform fmt
,terraform-docs
,check-merge-conflict
and (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 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
Usage
To use the included generator execute the below command in shell and provide your answers to the prompts.
With NodeJs
yo tfp
Prompts
...
? 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
Post generation steps
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
Contribution
Found a bug? feel free to raise an issue.
Pull requests are always welcome. Keen to review and merge asap.
Maintainer
License
MIT