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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 952ff01c0ea52b0ec8b24acf94fc2e58da06ae47d467e349f120c9b7eaff2102
4
- data.tar.gz: 6ca2a61ce2a1022a7a7cc7bfda0129c15a2a7d145b8afb8f4ed14e7d31db8aa8
3
+ metadata.gz: 0e541de47fdbb3199ce372f8d4d84576dece878af5643a1be54b01b0b124abd0
4
+ data.tar.gz: 74395b51db4762635a35a6ddb77c3e0c0d68447d9bd21369c1a07a9bf2d5fb0a
5
5
  SHA512:
6
- metadata.gz: 2036f5f8649540ef1e43f4292dfe0b497320046fda0937459778d7b163c5e9073c0102796e854b68da2adff98ae1bd51bc391d07df1fb7d65a22777b7747592c
7
- data.tar.gz: d65444682fde1eb1b8b7c881a777670c49e4ce68d52e86c1deef573b3da7e59e76dc1351a765c879185a59edae77f444c661c29d192ffb6cee3cb356f7eeed34
6
+ metadata.gz: 0fe323de02094b71fe6e086de4eca3086935a9fb05883650eb3c50cce48af3d64d11e93835da9c8464d61515dfc174960e1034871eb25d96b5135ac6359ca45f
7
+ data.tar.gz: 85ea42234d3521bfc1f1dbbcb6396579bfb4cd432e9c799349c9a847ee5c265ac619c482f6e426b9b39768c55ba76d7ef6361b81bda7fdef4249bb248614ce59
@@ -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
- File.write(options.fetch(:output), JSON.dump(Kumonos::Envoy.generate(definition)))
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'
@@ -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
 
@@ -1,3 +1,3 @@
1
1
  module Kumonos
2
- VERSION = '0.11.0'.freeze
2
+ VERSION = '0.12.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kumonos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taiki Ono