confidante 0.1.0 → 0.2.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 +4 -4
- data/.ruby-version +1 -1
- data/Gemfile.lock +13 -1
- data/confidante.gemspec +2 -1
- data/lib/confidante.rb +4 -0
- data/lib/confidante/configuration.rb +45 -0
- data/lib/confidante/version.rb +1 -1
- data/lib/hiera/backend/env_backend.rb +20 -0
- data/lib/hiera/backend/overrides_backend.rb +20 -0
- metadata +43 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 678e803092f7eca50c5fdb3e30702c8eb2c07f3f
|
4
|
+
data.tar.gz: 4b5555c36ec0a0ff609cd41d7756753bda085281
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7a90fb1d38661e092679fc01791de9a2f175d1574cf48a5e630a547a4fdf8a4d2836fcc53a5cab9a4699a08a8dd49e047bb7a8308d851333cea2087f0980eae
|
7
|
+
data.tar.gz: e16dc70ee1da23f6f444a73b1a020881b21384c3f75ed64e19090fb09a55c10bea69d03ea7952c35b5d3b375e7bde86cf4cdd99c566efe23aab0fa45e501fed5
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.3.1
|
data/Gemfile.lock
CHANGED
@@ -1,15 +1,24 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
confidante (0.
|
4
|
+
confidante (0.2.0)
|
5
|
+
activesupport (~> 5.1, >= 5.1.1)
|
5
6
|
hiera (~> 3.3, >= 3.3.1)
|
6
7
|
|
7
8
|
GEM
|
8
9
|
remote: https://rubygems.org/
|
9
10
|
specs:
|
11
|
+
activesupport (5.1.4)
|
12
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
13
|
+
i18n (~> 0.7)
|
14
|
+
minitest (~> 5.1)
|
15
|
+
tzinfo (~> 1.1)
|
16
|
+
concurrent-ruby (1.0.5)
|
10
17
|
diff-lcs (1.3)
|
11
18
|
gem-release (0.7.4)
|
12
19
|
hiera (3.4.1)
|
20
|
+
i18n (0.8.6)
|
21
|
+
minitest (5.10.3)
|
13
22
|
rake (10.5.0)
|
14
23
|
rspec (3.6.0)
|
15
24
|
rspec-core (~> 3.6.0)
|
@@ -24,6 +33,9 @@ GEM
|
|
24
33
|
diff-lcs (>= 1.2.0, < 2.0)
|
25
34
|
rspec-support (~> 3.6.0)
|
26
35
|
rspec-support (3.6.0)
|
36
|
+
thread_safe (0.3.6)
|
37
|
+
tzinfo (1.2.3)
|
38
|
+
thread_safe (~> 0.1)
|
27
39
|
|
28
40
|
PLATFORMS
|
29
41
|
ruby
|
data/confidante.gemspec
CHANGED
@@ -24,9 +24,10 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
25
|
spec.require_paths = ['lib']
|
26
26
|
|
27
|
-
spec.required_ruby_version = '>= 2.
|
27
|
+
spec.required_ruby_version = '>= 2.3'
|
28
28
|
|
29
29
|
spec.add_dependency 'hiera', '~> 3.3', '>= 3.3.1'
|
30
|
+
spec.add_dependency 'activesupport', '~> 5.1', '>= 5.1.1'
|
30
31
|
|
31
32
|
spec.add_development_dependency 'bundler', '~> 1.14'
|
32
33
|
spec.add_development_dependency 'rake', '~> 10.0'
|
data/lib/confidante.rb
CHANGED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'hiera'
|
2
|
+
require 'active_support'
|
3
|
+
require 'active_support/core_ext/hash/keys'
|
4
|
+
|
5
|
+
module Confidante
|
6
|
+
class Configuration
|
7
|
+
def initialize(opts)
|
8
|
+
options = {
|
9
|
+
overrides: {},
|
10
|
+
scope: {},
|
11
|
+
}.merge(opts.to_options)
|
12
|
+
|
13
|
+
unless options[:hiera]
|
14
|
+
options[:hiera] = Hiera.new(config: 'config/hiera.yaml')
|
15
|
+
end
|
16
|
+
|
17
|
+
@overrides = options[:overrides]
|
18
|
+
@scope = options[:scope]
|
19
|
+
@hiera = options[:hiera]
|
20
|
+
end
|
21
|
+
|
22
|
+
def for_overrides(overrides)
|
23
|
+
Configuration.new(
|
24
|
+
overrides: overrides,
|
25
|
+
scope: @scope,
|
26
|
+
hiera: @hiera)
|
27
|
+
end
|
28
|
+
|
29
|
+
def for_scope(scope)
|
30
|
+
Configuration.new(
|
31
|
+
overrides: @overrides,
|
32
|
+
scope: scope,
|
33
|
+
hiera: @hiera)
|
34
|
+
end
|
35
|
+
|
36
|
+
def method_missing(method, *args, &block)
|
37
|
+
@hiera.lookup(
|
38
|
+
method.to_s,
|
39
|
+
nil,
|
40
|
+
{cwd: Dir.pwd}
|
41
|
+
.merge(@scope)
|
42
|
+
.merge({overrides: @overrides}))
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/confidante/version.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'hiera'
|
2
|
+
|
3
|
+
class Hiera
|
4
|
+
module Backend
|
5
|
+
class Env_backend
|
6
|
+
def initialize
|
7
|
+
Hiera.debug('Hiera environment backend starting')
|
8
|
+
end
|
9
|
+
|
10
|
+
def lookup(key, scope, order_override, resolution_type, context)
|
11
|
+
Hiera.debug(
|
12
|
+
"Looking up #{key} in environment backend with #{resolution_type}")
|
13
|
+
|
14
|
+
Backend.parse_answer(
|
15
|
+
ENV[key.upcase] || throw(:no_such_key),
|
16
|
+
scope)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'hiera'
|
2
|
+
|
3
|
+
class Hiera
|
4
|
+
module Backend
|
5
|
+
class Overrides_backend
|
6
|
+
def initialize
|
7
|
+
Hiera.debug('Hiera overrides backend starting')
|
8
|
+
end
|
9
|
+
|
10
|
+
def lookup(key, scope, order_override, resolution_type, context)
|
11
|
+
Hiera.debug(
|
12
|
+
"Looking up #{key} in overrides backend with #{resolution_type}")
|
13
|
+
|
14
|
+
Backend.parse_answer(
|
15
|
+
scope[:overrides][key.to_sym] || throw(:no_such_key),
|
16
|
+
scope)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: confidante
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toby Clemson
|
@@ -14,76 +14,96 @@ dependencies:
|
|
14
14
|
name: hiera
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.3'
|
20
|
-
- -
|
20
|
+
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 3.3.1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - ~>
|
27
|
+
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '3.3'
|
30
|
-
- -
|
30
|
+
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 3.3.1
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: activesupport
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '5.1'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 5.1.1
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '5.1'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 5.1.1
|
33
53
|
- !ruby/object:Gem::Dependency
|
34
54
|
name: bundler
|
35
55
|
requirement: !ruby/object:Gem::Requirement
|
36
56
|
requirements:
|
37
|
-
- - ~>
|
57
|
+
- - "~>"
|
38
58
|
- !ruby/object:Gem::Version
|
39
59
|
version: '1.14'
|
40
60
|
type: :development
|
41
61
|
prerelease: false
|
42
62
|
version_requirements: !ruby/object:Gem::Requirement
|
43
63
|
requirements:
|
44
|
-
- - ~>
|
64
|
+
- - "~>"
|
45
65
|
- !ruby/object:Gem::Version
|
46
66
|
version: '1.14'
|
47
67
|
- !ruby/object:Gem::Dependency
|
48
68
|
name: rake
|
49
69
|
requirement: !ruby/object:Gem::Requirement
|
50
70
|
requirements:
|
51
|
-
- - ~>
|
71
|
+
- - "~>"
|
52
72
|
- !ruby/object:Gem::Version
|
53
73
|
version: '10.0'
|
54
74
|
type: :development
|
55
75
|
prerelease: false
|
56
76
|
version_requirements: !ruby/object:Gem::Requirement
|
57
77
|
requirements:
|
58
|
-
- - ~>
|
78
|
+
- - "~>"
|
59
79
|
- !ruby/object:Gem::Version
|
60
80
|
version: '10.0'
|
61
81
|
- !ruby/object:Gem::Dependency
|
62
82
|
name: rspec
|
63
83
|
requirement: !ruby/object:Gem::Requirement
|
64
84
|
requirements:
|
65
|
-
- - ~>
|
85
|
+
- - "~>"
|
66
86
|
- !ruby/object:Gem::Version
|
67
87
|
version: '3.0'
|
68
88
|
type: :development
|
69
89
|
prerelease: false
|
70
90
|
version_requirements: !ruby/object:Gem::Requirement
|
71
91
|
requirements:
|
72
|
-
- - ~>
|
92
|
+
- - "~>"
|
73
93
|
- !ruby/object:Gem::Version
|
74
94
|
version: '3.0'
|
75
95
|
- !ruby/object:Gem::Dependency
|
76
96
|
name: gem-release
|
77
97
|
requirement: !ruby/object:Gem::Requirement
|
78
98
|
requirements:
|
79
|
-
- - ~>
|
99
|
+
- - "~>"
|
80
100
|
- !ruby/object:Gem::Version
|
81
101
|
version: '0.7'
|
82
102
|
type: :development
|
83
103
|
prerelease: false
|
84
104
|
version_requirements: !ruby/object:Gem::Requirement
|
85
105
|
requirements:
|
86
|
-
- - ~>
|
106
|
+
- - "~>"
|
87
107
|
- !ruby/object:Gem::Version
|
88
108
|
version: '0.7'
|
89
109
|
description: A configuration engine combining environment variables, programmatic
|
@@ -94,9 +114,9 @@ executables: []
|
|
94
114
|
extensions: []
|
95
115
|
extra_rdoc_files: []
|
96
116
|
files:
|
97
|
-
- .gitignore
|
98
|
-
- .rspec
|
99
|
-
- .ruby-version
|
117
|
+
- ".gitignore"
|
118
|
+
- ".rspec"
|
119
|
+
- ".ruby-version"
|
100
120
|
- CODE_OF_CONDUCT.md
|
101
121
|
- Gemfile
|
102
122
|
- Gemfile.lock
|
@@ -107,7 +127,10 @@ files:
|
|
107
127
|
- bin/setup
|
108
128
|
- confidante.gemspec
|
109
129
|
- lib/confidante.rb
|
130
|
+
- lib/confidante/configuration.rb
|
110
131
|
- lib/confidante/version.rb
|
132
|
+
- lib/hiera/backend/env_backend.rb
|
133
|
+
- lib/hiera/backend/overrides_backend.rb
|
111
134
|
homepage: https://github.com/tobyclemson/confidante
|
112
135
|
licenses:
|
113
136
|
- MIT
|
@@ -118,17 +141,17 @@ require_paths:
|
|
118
141
|
- lib
|
119
142
|
required_ruby_version: !ruby/object:Gem::Requirement
|
120
143
|
requirements:
|
121
|
-
- -
|
144
|
+
- - ">="
|
122
145
|
- !ruby/object:Gem::Version
|
123
|
-
version: '2.
|
146
|
+
version: '2.3'
|
124
147
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
148
|
requirements:
|
126
|
-
- -
|
149
|
+
- - ">="
|
127
150
|
- !ruby/object:Gem::Version
|
128
151
|
version: '0'
|
129
152
|
requirements: []
|
130
153
|
rubyforge_project:
|
131
|
-
rubygems_version: 2.
|
154
|
+
rubygems_version: 2.5.1
|
132
155
|
signing_key:
|
133
156
|
specification_version: 4
|
134
157
|
summary: A configuration engine over hiera.
|