Awesome Open Source
Awesome Open Source

Terraform Provider for Linode

Maintainers

This provider plugin is maintained by Linode.

Requirements

  • Terraform 0.12.0+
  • Go 1.11.0 or higher (to build the provider plugin)

Using the provider

See the Linode Provider documentation to get started using the Linode provider. The examples included in this repository demonstrate usage of many of the Linode provider resources.

Additional documentation and examples are provided in the Linode Guide, Using Terraform to Provision Linode Environments.

Development

Building the provider

If you wish to build or contribute code to the provider, you'll first need Git and Go installed on your machine (version 1.11+ is required).

You'll also need to correctly configure 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.

Clone this repository to: $GOPATH/src/github.com/linode/terraform-provider-linode

mkdir -p $GOPATH/src/github.com/linode
cd $GOPATH/src/github.com/linode
git clone https://github.com/linode/terraform-provider-linode.git

Enter the provider directory and build the provider

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

Testing the provider

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. Acceptance testing will require the LINODE_TOKEN variable to be populated with a Linode APIv4 Token. See Linode Provider documentation for more details.

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

make testacc

There are a number of useful flags and variables to aid in debugging.

  • LINODE_DEBUG - If truthy, this will emit all HTTP requests and responses to the Linode API. This may include sensitive data such as the account tax_id (VAT) and the credit card last_four and expiry. Be very cautious about storing this output.

  • TF_LOG - This instructs Terraform to emit trace level (and higher) logging messages.

  • TF_SCHEMA_PANIC_ON_ERROR - This forces Terraform to panic if a Schema Set command failed.

These values (along with LINODE_TOKEN) can be placed in a .env file in the repository root to avoid repeating them on the command line.

LINODE_TOKEN="__YOUR_APIV4_TOKEN__" TESTARGS="-run TestAccLinodeVolume -count=1"  make testacc

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
go (15,347
terraform (412
terraform-provider (69