This provider plugin is maintained by Linode.
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.
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
. 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
In order to run the full suite of Acceptance tests, run make int-test
. 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 int-test
Use the following command template to execute specific Acceptance test
make ARGS="-run TestAccResourceVolume_basic" int-test
Use the following command template to execute particular Acceptance tests within a specific package
make TEST_TAGS="volume" int-test
There are a number of useful flags and variables to aid in debugging.
TF_LOG_PROVIDER
- This instructs Terraform to emit provider logging messages at the given level.
TF_LOG
- This instructs Terraform to emit logging messages at the given level.
TF_LOG_PROVIDER_LINODE_REQUESTS
- This instructs terraform-provider-linode to output API request logs at the given level.
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.
To filter down to logs relevant to the Linode provider, the following command can be used:
terraform apply 2> >(grep '@module=linode' >&2)