Terraform Provider for Linode
- Website: https://www.terraform.io
- Documentation: https://www.terraform.io/docs/providers/linode/index.html
- Mailing list: Google Groups
Maintainers
This provider plugin is maintained by Linode.
Requirements
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 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
In order to run specific Acceptance tests, the following command template can be used.
make PKG_NAME="linode/volume" TESTARGS="-run TestAccResourceVolume_basic" 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 accounttax_id
(VAT) and the credit cardlast_four
andexpiry
. 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.