dry-stack 0.0.71 → 0.0.73

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: '068cf557c3a44aece001366bcd147616d4e6aafc3db1f6941a7b0b79c3db6799'
4
- data.tar.gz: f73cdb06ddd54b2ea5b9744257172a196af3b34a4b08039580e4391e59959f67
3
+ metadata.gz: 37226df6d0e55d14a71d2d58fe9bb9c2cbff43fc7f91e81f23d33bb9a1deb37f
4
+ data.tar.gz: 18e0f8893cb5cc8b26fe7ed0ae23d0b60c91b93c4fa06799d333ac553ee3e9f1
5
5
  SHA512:
6
- metadata.gz: daf9793fd47e3c90114bf80c0d05fc07ca29e8ff8c28b017a86da6b1a37887492926c350b19f7fdc6e957642a87485c043e2e6f737fcb0117848335e5e6c6613
7
- data.tar.gz: 1d8bcbc7a6f7105196686f12a9cdde4ddfc0ee5f37fa75be96b79d1c3c9ba41db7c9a4a116ea5cf07a7a547b6e1a2a84e39fd124d57b6d3138e58f8843a87716
6
+ metadata.gz: 713ede878b90a841206f6ecc51dc6468de0168a6b401f5c3b9d9f054329b0f190cd7c6e9730befb21a631a08353dd97590ce25107c2b7ec7da0e92468bc4b6a2
7
+ data.tar.gz: 0e61ba0b8a116d1d386e1b032f08f85fa4dd73acc1e3e1b46b6529a126480ba0c24255e55083df2be204348d0887cd51d048b934db8dd10bc4c157e74e7fde3f
data/bin/stack.drs CHANGED
@@ -2,15 +2,19 @@ Description <<~DSC
2
2
 
3
3
  DSC
4
4
 
5
- Options name: 'stack_name'
5
+ Options name: 'stack_name', traefik: true
6
6
  SwarmDeploy :sky_gates do
7
7
  context_host 'ssh://root@10.0.0.1'
8
8
  stack_name 'remote_stack'
9
9
  env REGISTRY_HOST: '10.100.0.2:5000'
10
10
  end
11
+ Ingress admin: [
12
+ {host: 'backend.*'},
13
+ {host: 'admin.*', path: '/api', port: 4000}
14
+ ]
11
15
 
12
16
  Deploy [:admin, :operator], labels: [
13
- 'traefik.http.middlewares.%{service-name}_auth.basicauth.users=admin:$apr1$i7hdbc9g$Rkocxo9snhmuESvUg0TTv/',
17
+ 'traefik.http.middlewares.%{service-name}_auth.basicauth.users=admin:$$apr1$$i7hdbc9g$$Rkocxo9snhmuESvUg0TTv/',
14
18
  "traefik.http.routers.%{service-name}.middlewares=%{service-name}_auth"
15
19
  ]
16
20
 
@@ -13,6 +13,22 @@ require 'digest'
13
13
  # end
14
14
 
15
15
  module Dry
16
+ class ::Hash
17
+ def deep_merge!(second)
18
+ merger = proc { |_, v1, v2|
19
+ if Hash === v1 && Hash === v2
20
+ v1.merge!(v2, &merger)
21
+ else
22
+ if Array === v1 && Array === v2
23
+ v1 | v2
24
+ else
25
+ [:undefined, nil, :nil].include?(v2) ? v1 : v2
26
+ end
27
+ end
28
+ }
29
+ merge!(second.to_h, &merger)
30
+ end
31
+ end
16
32
 
17
33
  def each_recursive(parent, each_ =-> { _1.respond_to?(:each) ? _1.each : [] }, path = [], &blk)
18
34
  each2_ = each_.is_a?(Array) ? ->(p) { (m = each_.find { p.respond_to? _1 }) ? p.send(m) : [] } : each_
@@ -182,7 +198,7 @@ module Dry
182
198
  service[:environment].merge! STACK_NAME: @name.to_s, STACK_SERVICE_NAME: name.to_s
183
199
  service[:environment].transform_values! { !!_1 == _1 ? _1.to_s : _1 } # (false|true) to string
184
200
 
185
- service[:deploy].merge! @deploy[name] if @deploy[name]
201
+ service[:deploy].deep_merge! @deploy[name] if @deploy[name]
186
202
 
187
203
  hash = {'service-name': service_name, 'stack-name': @name}
188
204
  hash.default = ''
@@ -297,10 +313,15 @@ module Dry
297
313
  yield if block_given?
298
314
  end
299
315
 
300
- def Logging(names, opts = {})
301
- [names].flatten.each do |name|
302
- @logging[name.to_sym] = opts
316
+ def Logging(names = nil, opts )
317
+ if names
318
+ [names].flatten.each do |name|
319
+ (@logging[name.to_sym] ||= {}).merge! expand_hash(opts)
320
+ end
321
+ else
322
+ @logging.merge! expand_hash(opts)
303
323
  end
324
+
304
325
  end
305
326
 
306
327
  def Volume(name, opts = {})
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.0.71'
3
+ VERSION = '0.0.73'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.71
4
+ version: 0.0.73
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-05 00:00:00.000000000 Z
11
+ date: 2024-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake