Giter Club home page Giter Club logo

terraform-provider-civo's Introduction

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.

terraform-provider-civo's People

Contributors

alejandrojnm avatar zulh-civo avatar andyjeffries avatar pratikmota avatar saiyam1814 avatar alexsjones avatar surajnarwade avatar sindhuinti avatar satakshigarg avatar stack72 avatar kunal-kushwaha avatar augustasv avatar dependabot[bot] avatar hazsetata avatar willthames avatar uzaxirr avatar lakshya8066 avatar itsroy69 avatar jamesgawn avatar jdbohrman avatar haardikdharma10 avatar fgrehm avatar dtomasi avatar donnmyth avatar alessandroargentieri avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.