Skip to content

Latest commit

 

History

History
91 lines (56 loc) · 2.52 KB

README.md

File metadata and controls

91 lines (56 loc) · 2.52 KB

Terraform Leaseweb Provider

Go Reference

A Terraform provider to manage Leaseweb resources.

Requirements

All requirements are also satisfied by the included docker-compose.yml.

Building The Provider

  1. Clone the repository
  2. Enter the repository directory
  3. Build the provider using the Go install command:
go install

Adding Dependencies

This provider uses Go modules. Please see the Go documentation for the most up-to-date information about using Go modules.

To add a new dependency github.com/author/dependency to your Terraform provider:

go get github.com/author/dependency
go mod tidy

Then commit the changes to go.mod and go.sum.

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (see Requirements above).

To compile the provider, run go install. This will build the provider and put the provider binary in the $GOPATH/bin directory.

To generate or update documentation, run make generate.

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

Run mock server

To test against API specifications, a mock server can be run

docker-compose up -d

Make sure to use localhost in your requests as caddy does not know what to do with 127.0.0.1

curl -i http://localhost:8080/publicCloud/v1/instances --header 'x-lsw-auth: tralala'

First steps

To install relevant git hooks run

pnpm i

Commits

All commits must adhere to the conventional commit spec. For the acceptance tests to run properly make sure to run docker-compose up -d before committing anything or the commit will fail.

API Stability

Given that the public cloud API is currently in its beta version, we are maintaining the Terraform plugin in beta as well, despite the stability of our Dedicated Server API.

Architecture

Code architecture is discussed in ARCHITECTURE.md.