dry-stack 0.1.26 → 0.1.28

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: 4f4c014e08d5156845c9dc3c0884ab04fe72f0f75eaffe03415a0d24be6e4b2a
4
- data.tar.gz: c2faae7a7822c71d4e97590b0c7eec7abec5e5f32fb3cbd3baaa31534a302e96
3
+ metadata.gz: 3d0987eabb73bc09cec5a5199ea82cf507a1b6209b871ba3f9e8b8b4bf8f8e54
4
+ data.tar.gz: '0219fffa6fb22d82bb0a11f06ea9f30e3e0484705a783746325edbd0badbf03f'
5
5
  SHA512:
6
- metadata.gz: 48df74bbb2801e09b50a40d5f9a771f0da561b1e617d3ac30709ad5de97ce2b59a31b6f49d6991cc0502df3ee3e70f858a85e1d7bf577083fa0c2233c143b9bc
7
- data.tar.gz: ceed8407e46f9142d772873813cbeee78869f0f2bf305815e319a03ebabd2e10b6b26d1821e8f129c8043dbb1f674ef6f26e636e6bf1b9d9c2af0bbd1f78172f
6
+ metadata.gz: c819b5ab4611cb68d98787e8f44c359e33a2bed99498c6e23b75d817f21743840a9e0167dac169f712a8a7c834ebd39dcca0a2312476a0a036d52326161b3e8c
7
+ data.tar.gz: eb4baeb1c7abe692ea1adc5130ddb7a6cd21801098c1b199cb112abd7de4300cf4644e7a6a06e48ff45bd13a2a06fc55cdd97b189c67fe530548915eff191be1
@@ -35,14 +35,14 @@ Dry::CommandLine::COMMANDS[:swarm_deploy] = Class.new do
35
35
  # system " echo \"#{yaml.gsub("`", '\\\`')}\" | docker stack deploy -c - #{stack.name} --prune --resolve-image changed"
36
36
 
37
37
  # --prune --resolve-image changed
38
- exec_i "docker stack deploy -c - --with-registry-auth #{extra} #{stack.name}", yaml
38
+ exec_i "docker --context #{name} stack deploy -c - --with-registry-auth #{extra} #{stack.name}", yaml
39
39
  # Hide messages like:
40
40
  # Error response from daemon: rpc error: code = InvalidArgument desc = config 'grafana_dashboards_yaml-206a34dc77dc394d78a207c7abde327d' is in use by the following service: grafana_grafana
41
- system "docker config rm $(docker config ls --filter label=com.docker.stack.namespace=#{stack.name} --format \"{{.ID}}\") 2>&1 | grep -v \"is in use\""
41
+ system "docker --context #{name} config rm $(docker config ls --filter label=com.docker.stack.namespace=#{stack.name} --format \"{{.ID}}\") 2>&1 | grep -v \"is in use\""
42
42
 
43
- exec_i "docker config rm #{stack.name}_readme || echo 'failed to remove config #{stack.name}_readme'"
43
+ exec_i "docker --context #{name} config rm #{stack.name}_readme || echo 'failed to remove config #{stack.name}_readme'"
44
44
  puts "stack description: #{stack.description}"
45
- exec_i "docker config create #{stack.name}_readme -", stack.description
45
+ exec_i "docker --context #{name} config create #{stack.name}_readme -", stack.description
46
46
  end
47
47
 
48
48
  def help = ['Call docker stack deploy & add config readme w/ description',
@@ -270,11 +270,23 @@ module Dry
270
270
  service[:deploy][:labels] = service[:deploy][:labels].map{ env_sub[_1] }
271
271
  service[:environment].transform_values!{ _1.is_a?(String) ? (env_sub[_1]) : _1 }
272
272
 
273
- pp_i = @publish_ports[name]&.reject { _1.class == String }
273
+ pp_h = @publish_ports[name]&.select { _1.class == Hash }
274
+ pp_i = @publish_ports[name]&.select { _1.class == Integer }
274
275
  pp_s = @publish_ports[name]&.select { _1.class == String }
275
276
  service[:ports] = pp_i&.zip(service[:ports] || pp_i)&.map { _1.join ':' }
276
277
  service[:ports] = (service[:ports] || []) + pp_s unless pp_s.nil?
277
278
 
279
+ if pp_h&.any?
280
+ service[:ports] = service[:ports].map { |s|
281
+ if s.class == String
282
+ published, target = s.split(':').map(&:to_i)
283
+ { published:, target:, protocol: 'tcp', mode: 'ingress'}
284
+ else
285
+ s
286
+ end
287
+ } + pp_h
288
+ end
289
+
278
290
  service[:logging] ||= @logging[name.to_sym]
279
291
 
280
292
  service[:volumes]&.map!&.with_index do |volume, index|
@@ -391,7 +403,7 @@ module Dry
391
403
  end
392
404
 
393
405
  def PublishPorts(ports)
394
- @publish_ports.merge! ports.to_h { |k, v| [k,[v].flatten] }
406
+ @publish_ports.merge! ports.to_h { |k, v| [k,@publish_ports[k].to_a + [v].flatten] }
395
407
  end
396
408
 
397
409
  def Service(name, opts = {}, &block)
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.1.26'
3
+ VERSION = '0.1.28'
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.1.26
4
+ version: 0.1.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-01-29 00:00:00.000000000 Z
11
+ date: 2025-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake