Skip to content

andresjz/tf-provider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terraform Provider generator

Scaffolding / Boilerplate generator for new Terraform provider projects

https://www.npmjs.com/package/generator-tfp

Features

  • main.tf, variables.tf,outputs.tf files to provider tf path

  • test using terratest

  • .pre-commit-config.yaml for terraform fmt, terraform-docs, check-merge-conflict and (go fmt, golint) / rubocop

Prerequisites

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