Giter Site home page Giter Site logo

arusso / terraform-provider-vault Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hashicorp/terraform-provider-vault

0.0 0.0 0.0 19.26 MB

Terraform Vault provider

Home Page: https://www.terraform.io/docs/providers/vault/

License: Mozilla Public License 2.0

Shell 0.11% Go 97.85% Makefile 0.10% HTML 1.41% Smarty 0.48% HCL 0.06%

terraform-provider-vault's Introduction

Terraform Provider

Maintainers

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

Best Practices

We recommend that you avoid placing secrets in your Terraform config or state file wherever possible, and if placed there, you take steps to reduce and manage your risk. We have created a practical guide on how to do this with our opensource versions in Best Practices for Using HashiCorp Terraform with HashiCorp Vault:

Best Practices for Using HashiCorp Terraform with HashiCorp Vault

This webinar walks you through how to protect secrets when using Terraform with Vault. Additional security measures are available in paid Terraform versions as well.

Requirements

  • Terraform 0.12.x and above, we recommend using the latest stable release whenever possible.
  • Go 1.17 (to build the provider plugin)

Building The Provider

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

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

Enter the provider directory and build the provider

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

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (version 1.16+ 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-vault
...

In order to test the provider, you can simply run make test.

$ make test

In order to run the full suite of Acceptance tests, you will need the following:

Note: Acceptance tests create real resources, and often cost money to run.

  1. An instance of Vault running to run the tests against
  2. The following environment variables are set:
    • VAULT_ADDR - location of Vault
    • VAULT_TOKEN - token used to query Vault. These tests do not attempt to read ~/.vault-token.
  3. The following environment variables may need to be set depending on which acceptance tests you wish to run. There may be additional variables for specific tests. Consult the specific test(s) for more information.
    • AWS_ACCESS_KEY_ID
    • AWS_SECRET_ACCESS_KEY
    • GOOGLE_CREDENTIALS
    • GOOGLE_PROJECT
    • RMQ_CONNECTION_URI
    • RMQ_USERNAME
    • RMQ_PASSWORD
    • ARM_SUBSCRIPTION_ID
    • ARM_TENANT_ID
    • ARM_CLIENT_ID
    • ARM_CLIENT_SECRET
    • ARM_RESOURCE_GROUP
  4. Run make testacc

If you wish to run specific tests, use the TESTARGS environment variable:

TESTARGS="--run DataSourceAWSAccessCredentials" make testacc

Using a local development build

It's possible to use a local build of the Vault provider with Terraform directly. This is useful when testing the provider outside the acceptance test framework.

Configure Terraform to use the development build of the provider.

warning: backup your ~/.terraformrc before running this command:

cat > ~/.terraformrc <<HERE
provider_installation {
  dev_overrides {
    "hashicorp/vault" = "$HOME/.terraform.d/plugins"
  }
  
  # For all other providers, install them directly from their origin provider
  # registries as normal. If you omit this, Terraform will _only_ use
  # the dev_overrides block, and so no other providers will be available.
  direct {}
}
HERE

Then execute the dev make target from the project root.

make dev

Now Terraform is set up to use the dev provider build instead of the provider from the HashiCorp registry.

terraform-provider-vault's People

Contributors

paddycarver avatar tyrannosaurus-becks avatar benashz avatar lawliet89 avatar jasonodonnell avatar martinssipenko avatar catsby avatar vinay-gopalan avatar tvoran avatar mongey avatar bhuisgen avatar petems avatar grubernaut avatar sergeytrasko avatar jtcressy avatar cvbarros avatar hamishforbes avatar p0pr0ck5 avatar riuvshyn avatar bflad avatar gpiper14 avatar radeksimko avatar phylu avatar appilon avatar greut avatar apparentlymart avatar adongy avatar nazarewk avatar draggeta avatar fatmcgav 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.