kumonos 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/kumonos +8 -1
- data/lib/kumonos/envoy.rb +13 -6
- data/lib/kumonos/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e541de47fdbb3199ce372f8d4d84576dece878af5643a1be54b01b0b124abd0
|
4
|
+
data.tar.gz: 74395b51db4762635a35a6ddb77c3e0c0d68447d9bd21369c1a07a9bf2d5fb0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fe323de02094b71fe6e086de4eca3086935a9fb05883650eb3c50cce48af3d64d11e93835da9c8464d61515dfc174960e1034871eb25d96b5135ac6359ca45f
|
7
|
+
data.tar.gz: 85ea42234d3521bfc1f1dbbcb6396579bfb4cd432e9c799349c9a847ee5c265ac619c482f6e426b9b39768c55ba76d7ef6361b81bda7fdef4249bb248614ce59
|
data/exe/kumonos
CHANGED
@@ -13,12 +13,19 @@ class KumonosCli < Thor
|
|
13
13
|
|
14
14
|
desc 'envoy ENVOY_DEFINITION', 'Generate envoy configuration'
|
15
15
|
method_option :output, aliases: '-o', desc: 'Output path', required: true, type: :string
|
16
|
+
method_option :'service-cluster', desc: 'Service cluster', required: true, type: :string
|
17
|
+
method_option :'service-node', desc: 'Service node', required: true, type: :string
|
16
18
|
def envoy(path)
|
17
19
|
validate_path!(path)
|
18
20
|
definition = YAML.load_file(path)
|
19
21
|
validate_envoy_definition!(definition, path)
|
20
22
|
|
21
|
-
|
23
|
+
config = Kumonos::Envoy.generate(
|
24
|
+
definition,
|
25
|
+
cluster: options.fetch(:'service-cluster'),
|
26
|
+
node: options.fetch(:'service-node')
|
27
|
+
)
|
28
|
+
File.write(options.fetch(:output), JSON.dump(config))
|
22
29
|
end
|
23
30
|
|
24
31
|
desc 'clusters SERVIVE_DEFINITION', 'Generate clusters configuration'
|
data/lib/kumonos/envoy.rb
CHANGED
@@ -2,21 +2,23 @@ module Kumonos
|
|
2
2
|
# Generate envoy configuration.
|
3
3
|
module Envoy
|
4
4
|
class << self
|
5
|
-
def generate(definition)
|
6
|
-
EnvoyConfig.build(definition).to_h
|
5
|
+
def generate(definition, cluster:, node:)
|
6
|
+
EnvoyConfig.build(definition, cluster: cluster, node: node).to_h
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
EnvoyConfig = Struct.new(:version, :discovery_service, :statsd, :listener, :admin) do
|
10
|
+
EnvoyConfig = Struct.new(:version, :discovery_service, :statsd, :listener, :admin, :cluster, :node) do
|
11
11
|
class << self
|
12
|
-
def build(h)
|
12
|
+
def build(h, cluster:, node:)
|
13
13
|
discovery_service = DiscoverService.build(h.fetch('discovery_service'))
|
14
14
|
new(
|
15
15
|
h.fetch('version'),
|
16
16
|
discovery_service,
|
17
17
|
h['statsd'] ? h['statsd'].fetch('address') : nil,
|
18
18
|
Listener.build(h.fetch('listener'), discovery_service),
|
19
|
-
Admin.build(h.fetch('admin'))
|
19
|
+
Admin.build(h.fetch('admin')),
|
20
|
+
cluster,
|
21
|
+
node
|
20
22
|
)
|
21
23
|
end
|
22
24
|
|
@@ -40,6 +42,8 @@ module Kumonos
|
|
40
42
|
h.delete(:discovery_service)
|
41
43
|
h.delete(:statsd)
|
42
44
|
h.delete(:listener)
|
45
|
+
h.delete(:cluster)
|
46
|
+
h.delete(:node)
|
43
47
|
h[:admin] = admin.to_h
|
44
48
|
h[:static_resources] = {
|
45
49
|
listeners: [listener.to_h],
|
@@ -74,7 +78,10 @@ module Kumonos
|
|
74
78
|
]
|
75
79
|
h[:stats_config] = {
|
76
80
|
use_all_default_tags: true,
|
77
|
-
stats_tags: [
|
81
|
+
stats_tags: [
|
82
|
+
{ tag_name: 'service-cluster', fixed_value: cluster },
|
83
|
+
{ tag_name: 'service-node', fixed_value: node }
|
84
|
+
]
|
78
85
|
}
|
79
86
|
end
|
80
87
|
|
data/lib/kumonos/version.rb
CHANGED