From 648f9ccf3113b20d37a78a5d55d465e7f825259e Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Tue, 8 Dec 2020 11:21:32 +0100 Subject: [PATCH] util: support vaultBackendPath and vaultTLSServerName options Signed-off-by: Niels de Vos --- internal/util/vault.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/internal/util/vault.go b/internal/util/vault.go index d585510f7..fca1f3b6f 100644 --- a/internal/util/vault.go +++ b/internal/util/vault.go @@ -106,6 +106,11 @@ func setConfigString(option *string, config map[string]interface{}, key string) return nil } +// initConnection sets VAULT_* environment variables in the vc.vaultConfig map, +// these settings will be used when connecting to the Vault service with +// vc.connectVault(). +// +// nolint:gocyclo // iterating through many config options, not complex at all. func (vc *vaultConnection) initConnection(kmsID string, config map[string]interface{}, secrets map[string]string) error { vaultConfig := make(map[string]interface{}) keyContext := make(map[string]string) @@ -126,6 +131,26 @@ func (vc *vaultConnection) initConnection(kmsID string, config map[string]interf } // default: !firstInit + vaultBackendPath := "" // optional + err = setConfigString(&vaultBackendPath, config, "vaultBackendPath") + if errors.Is(err, errConfigOptionInvalid) { + return err + } + // set the option if the value was not invalid + if !errors.Is(err, errConfigOptionMissing) { + vaultConfig[vault.VaultBackendPathKey] = vaultBackendPath + } + + vaultTLSServerName := "" // optional + err = setConfigString(&vaultTLSServerName, config, "vaultTLSServerName") + if errors.Is(err, errConfigOptionInvalid) { + return err + } + // set the option if the value was not invalid + if !errors.Is(err, errConfigOptionMissing) { + vaultConfig[api.EnvVaultTLSServerName] = vaultTLSServerName + } + vaultNamespace := vaultDefaultNamespace // optional err = setConfigString(&vaultNamespace, config, "vaultNamespace") if errors.Is(err, errConfigOptionInvalid) {