From 078d8c0bb09707057f45e062d502b6cdf2502bb1 Mon Sep 17 00:00:00 2001 From: Ian Ferguson Date: Wed, 15 Jan 2020 14:12:20 -0500 Subject: [PATCH] Set VAULT_ADDR in process env when using token helper --- vault/provider.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/vault/provider.go b/vault/provider.go index ec5a34df82..a029241d06 100644 --- a/vault/provider.go +++ b/vault/provider.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "log" + "os" "strings" "github.com/hashicorp/go-multierror" @@ -556,6 +557,20 @@ func providerToken(d *schema.ResourceData) (string, error) { if token := d.Get("token").(string); token != "" { return token, nil } + + if addr := d.Get("address").(string); addr != "" { + if current, exists := os.LookupEnv("VAULT_ADDR"); exists { + defer func() { + os.Setenv("VAULT_ADDR", current) + }() + } else { + defer func() { + os.Unsetenv("VAULT_ADDR") + }() + } + os.Setenv("VAULT_ADDR", addr) + } + // Use ~/.vault-token, or the configured token helper. tokenHelper, err := config.DefaultTokenHelper() if err != nil {