dry-stack 0.0.12 → 0.0.13

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: 2b042eab1b6fa003ac8c4f3f92bded92fba4949bd664eb33c3632fe9b21cff3d
4
- data.tar.gz: 9fcf393c3e78ae50995276375e4d827c00576aa5d5f0f5aff3f31694d32f81a9
3
+ metadata.gz: d5f21e65df1e5cdb3f6fc7d28dd4c4f3e9c66db5de746af952d0353da1ecc4cb
4
+ data.tar.gz: 1cad2e0cf7cf1def43213d490173445db4df8036332b4ded90fd6095a552d8f3
5
5
  SHA512:
6
- metadata.gz: c3df1ae9f302a552c5e681f0b8ffd0efe1edfad71433e63c7552984381ad11dffb72ccd6dae3f7d9f6bbcfdbdb211ada225278d364d2d365ee8d1df024065e43
7
- data.tar.gz: 9b6a4964c7345421e135e75f33969bcac512452d2ef9ae271e1850111d0ce30ea1f43d9f8aa05d277797285a852162f6f8f21bb34938c1858e70f38e3b1435f0
6
+ metadata.gz: 68640915ff636f73f85a5d3cf4be792aeaa541b3887c8b8da996d640193c49c839997639fe22f1bfc2d7b25c99cd41a479983ebed555a834480ad36fab4eb63c
7
+ data.tar.gz: cb262611e2c731eb9af706f267e2b40d7253ee070a774353ae89b956a330d4451525acb7196dc8e70f89443bfdb214bf76d1d485ae7f780a30f9f32f21995033
data/bin/stack2.drs CHANGED
@@ -1,5 +1,6 @@
1
1
  PublishPorts reports: 7000
2
2
  Ingress reports: {host: 'reports.*', protocol: :http, port: 7000}
3
+ Deploy admin: { replica: 2, 'resources.limits': { cpus: 4, memory: '500M' } }
3
4
 
4
5
  Service :admin, image: '$REGISTRY_HOST/frontend', env: { APP: 'admin' }, ports: 5000
5
6
  Service :reports, image: '$REGISTRY_HOST/reports', env: { DB_URL: '$DB_URL' }
@@ -33,9 +33,22 @@ module Dry
33
33
  @networks = {}
34
34
  @publish_ports = {}
35
35
  @ingress = {}
36
+ @deploy = {}
36
37
  end
37
38
 
38
39
  def stringify(hash) = hash.to_h { |k, v| [k.to_s, v.is_a?(Hash) ? stringify(v) : v] }
40
+ def expand_hash(hash)
41
+ hash.select { _1.to_s =~ /\./ }.each do |k, v|
42
+ name = k.to_s.scan(/([^\.]*)\.(.*)/).flatten
43
+ hash.delete k
44
+ hash[name[0]] ||= {}
45
+ hash[name[0]][name[1]] ||= {}
46
+ hash[name[0]][name[1]].merge! v if v.is_a?(Hash)
47
+ hash[name[0]][name[1]] = v unless v.is_a?(Hash)
48
+ end
49
+ hash.each { expand_hash(_2) if _2.is_a?(Hash) }
50
+ hash
51
+ end
39
52
 
40
53
  def nginx_host2regexp(str)
41
54
  str.to_s.gsub('.', '\.').gsub('*', '.*')
@@ -78,6 +91,8 @@ module Dry
78
91
  ]
79
92
  end
80
93
 
94
+ service[:deploy].merge! @deploy[name] if @deploy[name]
95
+
81
96
  service[:ports] = @publish_ports[name]&.zip(service[:ports] || @publish_ports[name])&.map { _1.join ':' }
82
97
  end
83
98
 
@@ -110,6 +125,10 @@ module Dry
110
125
  @ingress.merge! services
111
126
  end
112
127
 
128
+ def Deploy(services)
129
+ @deploy.merge! expand_hash(services)
130
+ end
131
+
113
132
  def Network(name, opts = {})
114
133
  @networks[name] ||= {}
115
134
  @networks[name].merge! opts
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.0.12'
3
+ VERSION = '0.0.13'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B