consult 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 31a2190f1f1f38f5b2f674fa7d1ed91be5522d335e10c655f05493cbfdc056c3
4
- data.tar.gz: 0c51acfbd537bb327f6360a4e6ef59fa8ec79b35c7326e421b14362f7a47d827
3
+ metadata.gz: aa590a02bf4aceb2c3b04e21c5737d1b7e86160db8cb1251c79dcf612eba6e9f
4
+ data.tar.gz: 29e80de8a03c8c52eb156dcabaed67b43bad22997e6c3532994d177afce5d4b0
5
5
  SHA512:
6
- metadata.gz: b68efe09e942c634da159734f792da61e9fe16dc288e95b3cfafa1c0392457998f4149d0a6c5c1748238ff7ac3bf1165e63c80ed2d956914a372e591dbfc1545
7
- data.tar.gz: 14b46ab1dccee0d9739ec820ee94c89af221aedf83e5ec46f072df6fbe9b78c353cc603cd6274d68c8f5eafecde2adb20653c0ef322881843971d17465b209ef
6
+ metadata.gz: 8d6aebe85871c232f97e9b760c811b18e98488149214fe9c7b3f618b601e69323ba6f2c30ff270afd6d68a5783492407cbc1446e455efccc1d031c0a880a3a44
7
+ data.tar.gz: 532d19aaf161adb255f1179958814d03f1d9ced811c4405dcd2f66244589aa58c08e83583b84720feb6a8d6187f3a991076d7d4524c81b27bcddaf38716354e3
data/.gitignore CHANGED
@@ -5,8 +5,10 @@
5
5
  /doc/
6
6
  /pkg/
7
7
  /spec/reports/
8
- /spec/support/rendered/
8
+ /spec/support/rendered/*.yml
9
9
  /tmp/
10
10
 
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
+ .ruby-version
14
+ Gemfile.lock
data/.travis.yml CHANGED
@@ -1,15 +1,15 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.5.0
5
- - 2.4.1
4
+ - 2.5
5
+ - 2.4
6
+ - 2.3
6
7
 
7
8
  services:
8
9
  - docker
9
10
 
10
11
  before_install:
11
- - gem install bundler -v 1.16.1
12
- - docker pull consul
13
- - docker pull vault
14
- - docker run -d --name=dev-consul -p 8500:8500 consul
15
- - docker run -d --name=dev-vault -p 8200:8200 --cap-add=IPC_LOCK -e 'VAULT_DEV_ROOT_TOKEN_ID=94e1a9ed-5d72-5677-27ab-ebc485cca368' vault
12
+ - gem install bundler -v 1.16.2
13
+ - docker-compose --version
14
+ - docker-compose up -d
15
+ - docker ps
data/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # 0.6.0
2
+
3
+ * Fixed tests to account for versioned key-value stores in Vault 0.10+
4
+
5
+ # 0.5.0
6
+
7
+ Initial release.
data/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Consult
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/consult.svg)](https://badge.fury.io/rb/consult)
4
+ [![Build Status](https://travis-ci.org/veracross/consult.svg?branch=master)](https://travis-ci.org/veracross/consult)
5
+ [![Maintainability](https://api.codeclimate.com/v1/badges/d7b048b7edd9f27c83b9/maintainability)](https://codeclimate.com/github/veracross/consult/maintainability)
6
+
3
7
  Render configuration and secrets from [Consul] and [Vault] with ERB templates.
4
8
 
5
9
  This gem is a spiritual sibling to [Consul Template], but specifically intended for use in Ruby or Rails environments. It does not have the same features as Consul Template; it is intended for simpler scenarios. Most importantly, leases and configuration changes are _not_ watched to automatically re-render. Consult is intended for more static or medium-to-long lived configuration.
@@ -55,24 +59,24 @@ vault:
55
59
  # Enumerate the templates.
56
60
  templates:
57
61
  database:
58
- # Relative paths are assumed to be in #{Rails.root}/config.
62
+ # Relative paths are assumed to be in #{Rails.root}.
59
63
  # Path to the template
60
- path: templates/database.yml.erb
64
+ path: config/templates/database.yml.erb
61
65
  # Destination for the rendered template
62
- dest: rendered/database.yml
66
+ dest: config/database.yml
63
67
  # Which environments to render this template in
64
68
  environments: all
65
69
  # If the file is less than this old, do not re-render
66
70
  ttl: 3600 # seconds
67
71
 
68
72
  secrets:
69
- path: templates/secrets.yml.erb
70
- dest: rendered/secrets.yml
73
+ path: config/templates/secrets.yml.erb
74
+ dest: config/secrets.yml
71
75
  environments: test
72
76
 
73
77
  should_be_excluded:
74
- path: templates/fake.yml.erb
75
- dest: rendered/fake.yml
78
+ path: config/templates/fake.yml.erb
79
+ dest: config/fake.yml
76
80
  environments: production # won't be rendered because it doesn't match `env` at the top
77
81
  ```
78
82
 
@@ -135,6 +139,10 @@ returns
135
139
 
136
140
  **secret(path)** - Fetch a secret at the given path.
137
141
 
142
+ # Vault KV v2
143
+ username: <%= secret('secret/data/credentials').data.dig(:data, :username) %>
144
+
145
+ # Vault KV v1
138
146
  username: <%= secret('secret/credentials').data[:username] %>
139
147
 
140
148
  yields
@@ -269,10 +277,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
269
277
 
270
278
  Testing is easiest by running Consul and Vault in Docker. Just boot up their minimal containers:
271
279
 
272
- $ docker pull consul
273
- $ docker pull vault
274
- $ docker run -d --name=dev-consul -p 8500:8500 consul
275
- $ docker run -d --name=dev-vault -p 8200:8200 --cap-add=IPC_LOCK -e 'VAULT_DEV_ROOT_TOKEN_ID=94e1a9ed-5d72-5677-27ab-ebc485cca368' vault
280
+ $ docker-compose up
276
281
 
277
282
  Then run `bundle exec rspec`, or `bundle exec guard`.
278
283
 
data/consult.gemspec CHANGED
@@ -25,8 +25,8 @@ Gem::Specification.new do |spec|
25
25
  spec.require_paths = ['lib']
26
26
 
27
27
  spec.add_dependency 'activesupport', '> 4', '< 6'
28
- spec.add_dependency 'diplomat'
29
- spec.add_dependency 'vault'
28
+ spec.add_dependency 'diplomat', '~> 2.0.2'
29
+ spec.add_dependency 'vault', '~> 0.10.1'
30
30
 
31
31
  spec.add_development_dependency 'bundler', '~> 1.16'
32
32
  spec.add_development_dependency 'byebug'
@@ -0,0 +1,14 @@
1
+ version: '3'
2
+ services:
3
+ consul:
4
+ image: consul:1.2.0
5
+ ports:
6
+ - "8500:8500"
7
+ vault:
8
+ image: vault:0.10.3
9
+ environment:
10
+ - VAULT_DEV_ROOT_TOKEN_ID=94e1a9ed-5d72-5677-27ab-ebc485cca368
11
+ cap_add:
12
+ - IPC_LOCK
13
+ ports:
14
+ - "8200:8200"
data/lib/consult.rb CHANGED
@@ -81,7 +81,7 @@ module Consult
81
81
  ENV['CONSUL_HTTP_TOKEN'] ||
82
82
  @config[:consul].delete(:token) ||
83
83
  @config[:consul][:acl_token] ||
84
- CONSUL_DISK_TOKEN.read.chomp
84
+ (CONSUL_DISK_TOKEN.exist? ? CONSUL_DISK_TOKEN.read.chomp : nil)
85
85
  end
86
86
  end
87
87
  end
@@ -1,3 +1,3 @@
1
1
  module Consult
2
- VERSION = '0.5.0'
2
+ VERSION = '0.6.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: consult
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Fraser
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-23 00:00:00.000000000 Z
11
+ date: 2018-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -34,30 +34,30 @@ dependencies:
34
34
  name: diplomat
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
37
+ - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0'
39
+ version: 2.0.2
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ">="
44
+ - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0'
46
+ version: 2.0.2
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: vault
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
53
+ version: 0.10.1
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0'
60
+ version: 0.10.1
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: bundler
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -181,8 +181,8 @@ files:
181
181
  - ".rspec"
182
182
  - ".rubocop.yml"
183
183
  - ".travis.yml"
184
+ - CHANGELOG.md
184
185
  - Gemfile
185
- - Gemfile.lock
186
186
  - Guardfile
187
187
  - LICENSE.txt
188
188
  - Procfile
@@ -191,6 +191,7 @@ files:
191
191
  - bin/console
192
192
  - bin/setup
193
193
  - consult.gemspec
194
+ - docker-compose.yml
194
195
  - lib/consult.rb
195
196
  - lib/consult/rails/engine.rb
196
197
  - lib/consult/template.rb
data/Gemfile.lock DELETED
@@ -1,106 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- consult (0.5.0)
5
- activesupport (> 4, < 6)
6
- diplomat
7
- vault
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- activesupport (5.1.4)
13
- concurrent-ruby (~> 1.0, >= 1.0.2)
14
- i18n (~> 0.7)
15
- minitest (~> 5.1)
16
- tzinfo (~> 1.1)
17
- byebug (9.1.0)
18
- coderay (1.1.2)
19
- concurrent-ruby (1.0.5)
20
- diff-lcs (1.3)
21
- diplomat (2.0.2)
22
- faraday (~> 0.9)
23
- json
24
- docile (1.1.5)
25
- faraday (0.14.0)
26
- multipart-post (>= 1.2, < 3)
27
- ffi (1.9.18)
28
- formatador (0.2.5)
29
- guard (2.14.1)
30
- formatador (>= 0.2.4)
31
- listen (>= 2.7, < 4.0)
32
- lumberjack (~> 1.0)
33
- nenv (~> 0.1)
34
- notiffany (~> 0.0)
35
- pry (>= 0.9.12)
36
- shellany (~> 0.0)
37
- thor (>= 0.18.1)
38
- guard-compat (1.2.1)
39
- guard-rspec (4.7.3)
40
- guard (~> 2.1)
41
- guard-compat (~> 1.1)
42
- rspec (>= 2.99.0, < 4.0)
43
- i18n (0.9.5)
44
- concurrent-ruby (~> 1.0)
45
- json (2.1.0)
46
- listen (3.1.5)
47
- rb-fsevent (~> 0.9, >= 0.9.4)
48
- rb-inotify (~> 0.9, >= 0.9.7)
49
- ruby_dep (~> 1.2)
50
- lumberjack (1.0.12)
51
- method_source (0.9.0)
52
- minitest (5.11.3)
53
- multipart-post (2.0.0)
54
- nenv (0.3.0)
55
- notiffany (0.1.1)
56
- nenv (~> 0.1)
57
- shellany (~> 0.0)
58
- pry (0.11.3)
59
- coderay (~> 1.1.0)
60
- method_source (~> 0.9.0)
61
- rake (10.5.0)
62
- rb-fsevent (0.10.2)
63
- rb-inotify (0.9.10)
64
- ffi (>= 0.5.0, < 2)
65
- rspec (3.7.0)
66
- rspec-core (~> 3.7.0)
67
- rspec-expectations (~> 3.7.0)
68
- rspec-mocks (~> 3.7.0)
69
- rspec-core (3.7.0)
70
- rspec-support (~> 3.7.0)
71
- rspec-expectations (3.7.0)
72
- diff-lcs (>= 1.2.0, < 2.0)
73
- rspec-support (~> 3.7.0)
74
- rspec-mocks (3.7.0)
75
- diff-lcs (>= 1.2.0, < 2.0)
76
- rspec-support (~> 3.7.0)
77
- rspec-support (3.7.0)
78
- ruby_dep (1.5.0)
79
- shellany (0.0.1)
80
- simplecov (0.15.1)
81
- docile (~> 1.1.0)
82
- json (>= 1.8, < 3)
83
- simplecov-html (~> 0.10.0)
84
- simplecov-html (0.10.2)
85
- thor (0.20.0)
86
- thread_safe (0.3.6)
87
- tzinfo (1.2.5)
88
- thread_safe (~> 0.1)
89
- vault (0.10.1)
90
-
91
- PLATFORMS
92
- ruby
93
-
94
- DEPENDENCIES
95
- bundler (~> 1.16)
96
- byebug
97
- consult!
98
- guard
99
- guard-rspec
100
- pry
101
- rake (~> 10.0)
102
- rspec (~> 3.0)
103
- simplecov
104
-
105
- BUNDLED WITH
106
- 1.16.1