/terraform-provider-foo

Primary LanguageShellMozilla Public License 2.0MPL-2.0

Terraform Provider Scaffolding

This repository is a template for a Terraform provider. It is intended as a starting point for creating Terraform providers, containing:

  • A resource, and a data source (scaffolding/),
  • Documentation (website/),
  • Recommended build system (GNUMakefile, .travis.yml, scripts/),
  • Miscellanious meta files.

These files contain boilerplate code that you will need to edit to create your own Terraform provider. A full guide to creating Terraform providers can be found at Writing Custom Providers.

Please see the GitHub template repository documentation for how to create a new repository from this template on GitHub.

Requirements

Building The Provider

Clone repository to: $GOPATH/src/github.com/terraform-providers/terraform-provider-scaffolding

$ mkdir -p $GOPATH/src/github.com/terraform-providers; cd $GOPATH/src/github.com/terraform-providers
$ git clone git@github.com:terraform-providers/terraform-provider-scaffolding

Enter the provider directory and build the provider

$ cd $GOPATH/src/github.com/terraform-providers/terraform-provider-scaffolding
$ make build

Adding Dependencies

This provider is a Go module. Please see the Go documentation for the most up to date information about using Go modules.

We recommend that Terraform providers use vendoring for their Go dependencies.

To add a new dependency github.com/author/dependency to your Terraform provider:

go get github.com/author/dependency
go mod tidy
go mod vendor

Then commit the changes to go.mod and vendor/.

Using the provider

Fill in for each provider

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (version 1.8+ is required). You'll also need to correctly setup a GOPATH, as well as adding $GOPATH/bin to your $PATH.

To compile the provider, run make build. This will build the provider and put the provider binary in the $GOPATH/bin directory.

$ make bin
...
$ $GOPATH/bin/terraform-provider-scaffolding
...

In order to test the provider, you can simply run make test.

$ make test

In order to run the full suite of Acceptance tests, run make testacc.

Note: Acceptance tests create real resources, and often cost money to run.

$ make testacc