Module: VaultConsul
- Defined in:
- lib/vault-consul.rb,
lib/vault-consul/version.rb,
lib/vault-consul/config_handler.rb
Defined Under Namespace
Classes: ConfigHandler
Constant Summary collapse
- ENV_LIST =
%w[TEAM ENV SERVICE CONSUL_HTTP_ADDR CONSUL_HTTP_TOKEN VAULT_ADDR VAULT_TOKEN]
- VERSION =
"0.1.2"
Class Method Summary collapse
Class Method Details
.parse(path) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# 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) ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# 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) ⇒ Object
23 24 25 26 27 28 29 30 |
# 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 |