module VaultConsul
Constants
- ENV_LIST
- VERSION
Public Class Methods
parse(path)
click to toggle source
# File lib/vault-consul.rb, line 9 def parse(path) unless ['local', 'test'].include?(ENV['ENV']) ENV_LIST.each do |env| raise ConfigError, "Missing ENV variable: #{env}" if ENV[env].nil? || ENV[env] == '' end end yaml = File.read(path) handler = VaultConsul::ConfigHandler.new parser = Psych::Parser.new(handler) parser.parse(yaml) handler.root.to_ruby.first end
read_consul(consul_key)
click to toggle source
# File lib/vault-consul.rb, line 32 def read_consul(consul_key) Diplomat.configure do |config| config.url = ENV['CONSUL_HTTP_ADDR'] config.acl_token = ENV['CONSUL_HTTP_TOKEN'] end key = "#{ENV['TEAM']}/#{ENV['ENV']}/#{ENV['SERVICE']}/#{consul_key}" val = Diplomat::Kv.get(key) raise "ConsulError: No value was stored for #{key}" if val.nil? || val == '' val end
read_vault(vault_key, json_key)
click to toggle source
# File lib/vault-consul.rb, line 23 def read_vault(vault_key, json_key) Vault.with_retries(Vault::HTTPConnectionError) do key = "secret/data/#{ENV['TEAM']}/#{ENV['ENV']}/#{ENV['SERVICE']}/#{vault_key}" val = Vault.logical.read(key) raise "VaultError: No secret was stored for #{key}" if val.nil? || val.data.nil? || val.data[:data].nil? val.data[:data][json_key.to_sym] end end