Giter VIP home page Giter VIP logo

terraform-provider-consul's Introduction

Terraform Provider

Maintainers

This provider plugin is maintained by the Consul team at HashiCorp.

Requirements

  • Terraform 0.10.x
  • Go 1.11 (to build the provider plugin)

Building The Provider

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

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

Enter the provider directory and build the provider

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

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 bin
...
$ $GOPATH/bin/terraform-provider-consul
...

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. This should be performed before merging or opening pull requests.

$ consul agent -dev -config-file ./consul_test.hcl &
$ export CONSUL_HTTP_ADDR=localhost:8500
$ export CONSUL_HTTP_TOKEN=master-token
$ make testacc

Testing the resources specific to Consul Enterprise requires a running Consul Enterprise server. It is possible to use the Consul Enterprise Docker image which has a license valid for six hours during development:

$ docker run --rm \
             -d \
             --name consul-test \
             -v $PWD/consul_test.hcl:/consul_test.hcl:ro \
             -p 8500:8500 \
             hashicorp/consul-enterprise:latest consul agent -dev -config-file consul_test.hcl -client=0.0.0.0
$ export CONSUL_HTTP_ADDR=localhost:8500
$ export CONSUL_HTTP_TOKEN=master-token
$ make testacc
$ docker stop consul-test

Running the tests requires a running Consul agent locally. This provider targets the latest version of Consul, but older versions should be compatible where possible. In some cases, older versions of this provider will work with older versions of Consul.

If you have Docker installed, you can run Consul with the following command:

$ make test-serv

By default, this will use the latest version of Consul based on the latest image in the Docker repository. You can specify a version with the following:

$ CONSUL_VERSION=1.0.1 make test-serv

This command will run attached and will stop Consul when interrupted. Images will be cached locally by Docker so it is quicky to restart the server as necessary. This will expose Consul on the default adddress.

Nightly acceptance tests are run against the latest tag of the Consul Docker image. To run the acceptance tests against a development version of Consul, you can compile it locally and then run it in development mode:

$ consul agent -dev

terraform-provider-consul's People

Contributors

pearkes avatar sean- avatar armon avatar grubernaut avatar remilapeyre avatar maxenglander avatar apparentlymart avatar stack72 avatar radeksimko avatar appilon avatar vancluever avatar lawliet89 avatar greut avatar mitchellh avatar jamtur01 avatar natefaerber avatar ryanuber avatar borgified avatar randomswdev avatar sethvargo avatar phinze avatar commarla avatar josharian avatar jbardin avatar zeldhyr avatar dmportella avatar daktari avatar alkalinecoffee avatar valeriedittmar avatar findkim 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.