kumonos 0.11.0 → 0.12.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: 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