configuration_service 1.1.3 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/README.rdoc +68 -1
- data/lib/configuration_service/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6cd9fc6de7766ed90bd9dd238497c725b395fe4b
|
4
|
+
data.tar.gz: 8e3153bef43bac67e3f8b7a1e43978a42536616d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3e144c0799f65f1f979d66cbd80d58605a0a0a744650c3a32542e7a7273abeb44a728ea0552868fb3480c9babff8fd0a862fae6d1957d1566da9db00d52adfe
|
7
|
+
data.tar.gz: 0a995102ba7f9bd104450093b4dd9f828740ff63503464d5bc74abb1cf48777897809e92c8c4ffc09278c4dcf3673758393a8af9ed9121cfbbf4e6d8c2e207c0
|
data/README.md
CHANGED
@@ -4,7 +4,9 @@ The configuration service provides authorized publication and consumption of ide
|
|
4
4
|
|
5
5
|
## Documentation
|
6
6
|
|
7
|
-
|
7
|
+
For documentation of the released gems, see the [rubygems](https://rubygems.org/gems/configuration_service) documentation link.
|
8
|
+
|
9
|
+
To generate documentation for the master branch:
|
8
10
|
|
9
11
|
```shell
|
10
12
|
git clone git@github.com:hetznerZA/configuration_service.git
|
data/README.rdoc
CHANGED
@@ -14,4 +14,71 @@ allows for implementations that are not providers to the Ruby API.
|
|
14
14
|
See ConfigurationService::Test.
|
15
15
|
|
16
16
|
A stub service provider is provided in
|
17
|
-
ConfigurationService::Provider::Stub.
|
17
|
+
ConfigurationService::Provider::Stub. Other providers are avialable as gems.
|
18
|
+
|
19
|
+
Service providers are registered against the
|
20
|
+
ConfigurationService::ProviderRegistry.
|
21
|
+
|
22
|
+
Factories for creating and configuring service instances are provided in
|
23
|
+
ConfigurationService::Factory.
|
24
|
+
|
25
|
+
== Usage
|
26
|
+
|
27
|
+
The recommended approach to creating a configuration service client is to use
|
28
|
+
a Factory.
|
29
|
+
|
30
|
+
For example, we can use the EnvironmentContext factory to create and configure
|
31
|
+
a configuration service client backed by the vault provider as follows.
|
32
|
+
|
33
|
+
Our +main.rb+ (or +config.ru+ or whatever) is simple:
|
34
|
+
|
35
|
+
require 'bundler'
|
36
|
+
Bundler.require(:default)
|
37
|
+
|
38
|
+
service = ConfigurationService::Factory::EnvironmentContext.create
|
39
|
+
if configuraton = service.request_configuration
|
40
|
+
AcmeApplication.new(configuration.data).run
|
41
|
+
else
|
42
|
+
raise "configuration not found"
|
43
|
+
end
|
44
|
+
|
45
|
+
This relies on a bundler Gemfile to load the gem that contains whatever
|
46
|
+
service provider we configure in the environment:
|
47
|
+
|
48
|
+
source 'https://rubygems.org'
|
49
|
+
|
50
|
+
gem 'configuration_service-provider-vault'
|
51
|
+
gem 'acme_application'
|
52
|
+
|
53
|
+
Now we use the process environment to configure the EnvironmentContext factory:
|
54
|
+
|
55
|
+
CFGSRV_IDENTIFIER="acme" \
|
56
|
+
CFGSRV_TOKEN="0b2a80f4-54ce-45f4-8267-f6558fee64af" \
|
57
|
+
CFGSRV_PROVIDER="vault" \
|
58
|
+
CFGSRV_PROVIDER_ADDRESS="http://127.0.0.1:8200" \
|
59
|
+
bundle exec main.rb
|
60
|
+
|
61
|
+
Note that +main.rb+ is completely decoupled from the selection of provider and
|
62
|
+
provider configuration. We could swap and/or reconfigure the provider by
|
63
|
+
manipulating only the Gemfile and the environment.
|
64
|
+
|
65
|
+
If you prefer to hard-code everything, or if your strategy for bootstrapping
|
66
|
+
the configuration service isn't expressed by an existing factory yet, you can
|
67
|
+
construct the service yourself:
|
68
|
+
|
69
|
+
require 'configuration_service/provider/vault'
|
70
|
+
require 'acme_application'
|
71
|
+
|
72
|
+
service = ConfigurationService.new(
|
73
|
+
"acme",
|
74
|
+
"0b2a80f4-54ce-45f4-8267-f6558fee64af",
|
75
|
+
ConfigurationService::Provider::Vault.new(
|
76
|
+
address: "http://127.0.0.1:8200"
|
77
|
+
)
|
78
|
+
)
|
79
|
+
if configuraton = service.request_configuration
|
80
|
+
AcmeApplication.new(configuration.data).run
|
81
|
+
else
|
82
|
+
raise "configuration not found"
|
83
|
+
end
|
84
|
+
|