dry-stack 0.0.29 → 0.0.31
Sign up to get free protection for your applications and to get access to all the features.
- 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
|