dry-stack 0.0.29 → 0.0.31
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 +4 -4
- data/lib/dry-stack/command_line.rb +11 -0
- data/lib/dry-stack/command_swarm_deploy.rb +6 -4
- data/lib/dry-stack/stack.rb +17 -1
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d15a946b86497d529dc191697a55abb8ff207dd70da6807640b7a87ef4f2269
|
4
|
+
data.tar.gz: b17a4ac10cdc98485cb31aec4ddf4d68e46bc5486dbf163312c6536ef437bde2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90e203c189bedd2dea18e0fe4407d7992d5173a5a74eaf055af9b1350ad700a9da4313e6e9d6bb548a924c2d9a122e198b7351f4ea9a4dfc685ce0c2b1d8135d
|
7
|
+
data.tar.gz: 949c056d38082987d914d81da31a6ec832b1b06fe16a5e8504f64d113f8234370b353061aa371961d664e6c109e62312f95240f496e01ab4913527890d71aa1c
|
@@ -1,4 +1,15 @@
|
|
1
1
|
require_relative '../version'
|
2
|
+
require 'open3'
|
3
|
+
|
4
|
+
def exec_i(cmd, input_string)
|
5
|
+
puts "exec_i(inputs.size #{input_string.size}): #{cmd}"
|
6
|
+
Open3.popen3(cmd) do |i, o, e, t|
|
7
|
+
i.puts input_string
|
8
|
+
i.close
|
9
|
+
while line = o.gets; puts "o: " + line end
|
10
|
+
while line = e.gets; puts "o: " + line end
|
11
|
+
end
|
12
|
+
end
|
2
13
|
|
3
14
|
module Dry
|
4
15
|
module CommandLine
|
@@ -9,10 +9,12 @@ Dry::CommandLine::COMMANDS[:swarm_deploy] = Class.new do
|
|
9
9
|
# substitute ENV variables
|
10
10
|
yaml = _params[:'no-env'] ? yaml : `echo \"#{yaml.gsub("`", '\\\`')}\"`
|
11
11
|
system " echo \"#{yaml.gsub("`", '\\\`')}\"" if _params[:v]
|
12
|
-
system " echo \"#{yaml.gsub("`", '\\\`')}\" | docker stack deploy -c - #{stack.name} --prune --resolve-image changed"
|
13
|
-
|
14
|
-
|
15
|
-
system "
|
12
|
+
# system " echo \"#{yaml.gsub("`", '\\\`')}\" | docker stack deploy -c - #{stack.name} --prune --resolve-image changed"
|
13
|
+
|
14
|
+
exec_i "docker stack deploy -c - #{stack.name} --prune --resolve-image changed", yaml
|
15
|
+
system "docker config rm #{stack.name}_readme"
|
16
|
+
puts "stack description: #{stack.description}"
|
17
|
+
exec_i "docker config create #{stack.name}_readme -", stack.description
|
16
18
|
end
|
17
19
|
|
18
20
|
def help = 'Call docker stack deploy & add config readme w/ description'
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -12,6 +12,7 @@ module Dry
|
|
12
12
|
class ServiceFunction
|
13
13
|
def initialize(service, &); @service = service; instance_exec(&) end
|
14
14
|
def env(variables)= @service[:environment].merge! variables
|
15
|
+
def volume(opts)= ((@service[:volumes] ||= []) << opts).flatten!
|
15
16
|
def image(name)= @service[:image] = name
|
16
17
|
def ports(ports)= ((@service[:ports] ||= []) << ports).flatten!
|
17
18
|
def command(cmd)= @service[:command] = cmd
|
@@ -36,13 +37,21 @@ module Dry
|
|
36
37
|
@options = {}
|
37
38
|
@services = {}
|
38
39
|
@networks = {}
|
40
|
+
@volumes = {}
|
39
41
|
@publish_ports = {}
|
40
42
|
@ingress = {}
|
41
43
|
@deploy = {}
|
42
44
|
@labels = {}
|
43
45
|
end
|
44
46
|
|
45
|
-
def stringify(
|
47
|
+
def stringify(obj)
|
48
|
+
case
|
49
|
+
when obj.is_a?(Hash); obj.to_h { |k, v| [k.to_s, stringify(v)] }
|
50
|
+
when obj.is_a?(Array); obj.map { stringify(_1) }
|
51
|
+
else obj
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
46
55
|
def expand_hash(hash)
|
47
56
|
hash.select { _1.to_s =~ /\./ }.each do |k, v|
|
48
57
|
name = k.to_s.scan(/([^\.]*)\.(.*)/).flatten
|
@@ -72,6 +81,7 @@ module Dry
|
|
72
81
|
# Not allowed by docker stack deploy
|
73
82
|
version: @version,
|
74
83
|
services: YAML.load(@services.to_yaml),
|
84
|
+
volumes: YAML.load(@volumes.to_yaml),
|
75
85
|
networks: YAML.load(@networks.to_yaml),
|
76
86
|
}
|
77
87
|
|
@@ -179,6 +189,12 @@ module Dry
|
|
179
189
|
@networks[name].merge! opts
|
180
190
|
yield if block_given?
|
181
191
|
end
|
192
|
+
|
193
|
+
def Volume(name, opts = {})
|
194
|
+
@volumes[name] ||= {}
|
195
|
+
@volumes[name].merge! opts
|
196
|
+
yield if block_given?
|
197
|
+
end
|
182
198
|
end
|
183
199
|
end
|
184
200
|
|
data/lib/version.rb
CHANGED
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.
|
4
|
+
version: 0.0.31
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artyom B
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|