Skip to content

civo/terraform-provider-civo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
GitHub Actions
Nov 5, 2024
099ba0f · Nov 5, 2024
Aug 13, 2024
Nov 5, 2024
Oct 7, 2024
Aug 7, 2024
Aug 15, 2024
Aug 7, 2024
Oct 4, 2023
Sep 30, 2021
Sep 30, 2021
May 24, 2019
Sep 14, 2022
Nov 5, 2024
Mar 14, 2023
May 24, 2019
Mar 14, 2023
Mar 14, 2023
Jul 26, 2023
Sep 17, 2021
Mar 10, 2020
Nov 5, 2024
Nov 5, 2024
Apr 19, 2021

Repository files navigation

Terraform Provider

Requirements

  • Terraform 0.13.x
  • Go 1.14.x or later (to build the provider plugin)

Building The Provider

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

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

Enter the provider directory and build the provider

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

Local Development: Using a local version of the Provider

If you're developing the provider locally, you can test your changes through:

$ make localdev

You'll be asked to provide the folder containing the declaration of the resources to be installed in civo and the civo region in which deploy those resources. No provider declaration is necessary because automatically produced by the script.

Documentation

  • For new Terraform users, we have guides written for you on Civo website
  • For experienced Terraform users, the documentation is available at Terraform Registry

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (version 1.14.x (or later) 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-civo
...

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 TestAccCivoDomain_Basic acceptance test only:

$ make testacc TESTARGS='-run=TestAccCivoDomain_Basic'

For information about writing acceptance tests, see the main Terraform contributing guide.

Documenting the Provider

As of 10th September 2021, we decided to use tfplugindocs to auto-generate docs from the provider code and examples.

For reference, you can see an example of the templates and output in paultyng/terraform-provider-unifi and browse the generated docs in the Terraform Registry.

Another example would be https://github.com/fastly/terraform-provider-fastly - which rendered in the Terraform Registry.

Caveat

While the tfplugindocs is still in active development by the Hashicorp and works fine for most cases, except when it comes to generating attribute descriptions located in nested schemas. We think this isn't too critical since the attribute keys are self explanatory. However, we will still watch the issue and update the docs once it's fixed.