Skip to content

vultr/terraform-provider-vultr

Repository files navigation

Terraform Provider for Vultr

Requirements

  • Terraform 0.12.x+
  • Go 1.22.x+ (to build the provider plugin)

Building The Provider

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

$ mkdir -p $GOPATH/src/github.com/vultr; cd $GOPATH/src/github.com/vultr
$ git clone [email protected]:vultr/terraform-provider-vultr.git

Enter the provider directory and build the provider

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

Using the provider

See the Vultr Provider documentation to get started using the Vultr provider.

Please read about V2 changes from V1 for a list of new changes made to the Vultr Terraform Provider

Installation

In your terraform config, define vultr/vultr in your required_providers and set your API key:

terraform {
  required_providers {
    vultr = {
      source = "vultr/vultr"
      version = "2.22.1"
    }
  }
}

provider "vultr" {
    api_key = "..."
}

After, run terraform init to install the provider.

Manual Installation

If you don't have internet access on the target machine or prefer to install the provider locally follow the steps for the relevant operating system and architecture.

  1. Download and extract the binary for your system and architecture

  2. Make the local plugins directory:

On linux

export VERSION=2.22.1 OS=linux ARCH=amd64 
mkdir -p ~/.terraform.d/plugins/local/vultr/vultr/${VERSION}/${OS}_${ARCH}/'

On mac

export VERSION=2.22.1 OS=darwin ARCH=arm64 
mkdir -p ~/.terraform.d/plugins/local/vultr/vultr/${VERSION}/${OS}_${ARCH}/'
  1. Rename and copy the binary into the local plugins directory:
mv terraform-provider-vultr_v${VERSION} ~/.terraform.d/plugins/local/vultr/vultr/${VERSION}/${OS}_${ARCH}/terraform-provider-vultr_v${VERSION}
  1. Add the local provider to your terraform main.tf config:
terraform {
  required_providers {
    vultr = {
      source = "local/vultr/vultr"
      version = "2.22.1"
    }
  }
}

provider "vultr" {
  api_key = "..."
}
  1. Test everything by running terraform init in that same directory.

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (version 1.11+ 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 build
...
$ $GOPATH/bin/terraform-provider-vultr
...

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

In order to run a specific acceptance test, use the TESTARGS environment variable. For example, the following command will run TestAccVultrUser_base acceptance test only:

$ make testacc TESTARGS='-run=TestAccVultrUser_base'