dry-stack 0.0.69 → 0.0.71
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/stack.drs +5 -0
- data/lib/dry-stack/command_compose.rb +1 -1
- data/lib/dry-stack/command_line.rb +5 -2
- data/lib/dry-stack/command_swarm_deploy.rb +7 -3
- data/lib/dry-stack/stack.rb +3 -3
- 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: '068cf557c3a44aece001366bcd147616d4e6aafc3db1f6941a7b0b79c3db6799'
|
4
|
+
data.tar.gz: f73cdb06ddd54b2ea5b9744257172a196af3b34a4b08039580e4391e59959f67
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: daf9793fd47e3c90114bf80c0d05fc07ca29e8ff8c28b017a86da6b1a37887492926c350b19f7fdc6e957642a87485c043e2e6f737fcb0117848335e5e6c6613
|
7
|
+
data.tar.gz: 1d8bcbc7a6f7105196686f12a9cdde4ddfc0ee5f37fa75be96b79d1c3c9ba41db7c9a4a116ea5cf07a7a547b6e1a2a84e39fd124d57b6d3138e58f8843a87716
|
data/bin/stack.drs
CHANGED
@@ -9,6 +9,11 @@ SwarmDeploy :sky_gates do
|
|
9
9
|
env REGISTRY_HOST: '10.100.0.2:5000'
|
10
10
|
end
|
11
11
|
|
12
|
+
Deploy [:admin, :operator], labels: [
|
13
|
+
'traefik.http.middlewares.%{service-name}_auth.basicauth.users=admin:$apr1$i7hdbc9g$Rkocxo9snhmuESvUg0TTv/',
|
14
|
+
"traefik.http.routers.%{service-name}.middlewares=%{service-name}_auth"
|
15
|
+
]
|
16
|
+
|
12
17
|
PublishPorts admin: 4000, operator: 4001, navigator: 4002, reports: 7000 # mode: ingress, protocol: tcp
|
13
18
|
|
14
19
|
Service :admin, image: 'frontend', env: {APP: 'admin'}, ports: 5000
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require_relative 'command_line'
|
2
2
|
|
3
3
|
Dry::CommandLine::COMMANDS[:to_compose] = Class.new do
|
4
|
-
def run(stack, params, args)
|
4
|
+
def run(stack, params, args, extra)
|
5
5
|
raise "unsupported args: #{args}" unless args.empty?
|
6
6
|
_params = stack.options.merge params
|
7
7
|
stack.name = _params[:name] if _params[:name]
|
@@ -42,7 +42,10 @@ module Dry
|
|
42
42
|
def run(args)
|
43
43
|
params = {}
|
44
44
|
|
45
|
+
a, extra = ARGV.join(' ').split( / -- /)
|
46
|
+
ARGV.replace a.split if a
|
45
47
|
ARGV << '-h' if ARGV.empty?
|
48
|
+
|
46
49
|
OptionParser.new do |o|
|
47
50
|
o.version = "#{Dry::Stack::VERSION}"
|
48
51
|
|
@@ -54,7 +57,7 @@ module Dry
|
|
54
57
|
o.banner = "Version: #{o.version}\nUsage:\n\t#{usage.join "\n\t"}"
|
55
58
|
o.separator ''
|
56
59
|
o.separator 'Commands:'
|
57
|
-
COMMANDS.each { |name, cmd| o.separator "#{' ' * 5}#{name} - #{cmd.help}" }
|
60
|
+
COMMANDS.each { |name, cmd| o.separator "#{' ' * 5}#{name} - #{[cmd.help].flatten.join "\n#{' ' * (5+4 + name.size)}" }" }
|
58
61
|
|
59
62
|
o.separator ''
|
60
63
|
o.separator 'Options:'
|
@@ -82,7 +85,7 @@ module Dry
|
|
82
85
|
safe_eval stack_text # isolate context
|
83
86
|
|
84
87
|
Stack.last_stack.name = params[:name] if params[:name]
|
85
|
-
COMMANDS[command.to_sym].run Stack.last_stack, params, args
|
88
|
+
COMMANDS[command.to_sym].run Stack.last_stack, params, args, extra
|
86
89
|
rescue => e
|
87
90
|
puts e.message
|
88
91
|
ENV['DEBUG'] ? raise : exit(1)
|
@@ -1,8 +1,9 @@
|
|
1
1
|
require_relative 'command_line'
|
2
2
|
|
3
3
|
Dry::CommandLine::COMMANDS[:swarm_deploy] = Class.new do
|
4
|
-
def run(stack, params, args)
|
4
|
+
def run(stack, params, args, extra)
|
5
5
|
unless args.empty?
|
6
|
+
c_name = args[0].to_sym
|
6
7
|
raise "deploy config not found: #{args[0]}" unless stack.swarm_deploy.key? args[0].to_sym
|
7
8
|
context = stack.swarm_deploy[args[0].to_sym]
|
8
9
|
end
|
@@ -37,7 +38,8 @@ Dry::CommandLine::COMMANDS[:swarm_deploy] = Class.new do
|
|
37
38
|
system " echo \"#{yaml.gsub("`", '\\\`')}\"" if _params[:v]
|
38
39
|
# system " echo \"#{yaml.gsub("`", '\\\`')}\" | docker stack deploy -c - #{stack.name} --prune --resolve-image changed"
|
39
40
|
|
40
|
-
|
41
|
+
# --prune --resolve-image changed
|
42
|
+
exec_i "docker stack deploy -c - #{stack.name} #{extra}", yaml
|
41
43
|
system "docker config rm $(docker config ls --filter label=com.docker.stack.namespace=#{stack.name} --format \"{{.ID}}\")"
|
42
44
|
|
43
45
|
exec_i "docker config rm #{stack.name}_readme || echo 'failed to remove config #{stack.name}_readme'"
|
@@ -45,7 +47,9 @@ Dry::CommandLine::COMMANDS[:swarm_deploy] = Class.new do
|
|
45
47
|
exec_i "docker config create #{stack.name}_readme -", stack.description
|
46
48
|
end
|
47
49
|
|
48
|
-
def help = 'Call docker stack deploy & add config readme w/ description'
|
50
|
+
def help = ['Call docker stack deploy & add config readme w/ description',
|
51
|
+
'[... swarm_deploy sd_name -- --prune --resolve-image changed]']
|
52
|
+
|
49
53
|
end.new
|
50
54
|
|
51
55
|
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -182,16 +182,16 @@ module Dry
|
|
182
182
|
service[:environment].merge! STACK_NAME: @name.to_s, STACK_SERVICE_NAME: name.to_s
|
183
183
|
service[:environment].transform_values! { !!_1 == _1 ? _1.to_s : _1 } # (false|true) to string
|
184
184
|
|
185
|
+
service[:deploy].merge! @deploy[name] if @deploy[name]
|
186
|
+
|
185
187
|
hash = {'service-name': service_name, 'stack-name': @name}
|
186
188
|
hash.default = ''
|
187
189
|
original_verbosity = $VERBOSE
|
188
190
|
$VERBOSE = nil
|
189
|
-
service[:deploy][:labels].map
|
191
|
+
service[:deploy][:labels] = service[:deploy][:labels].map{ _1 % hash }
|
190
192
|
service[:environment].transform_values!{ _1.is_a?(String) ? (_1 % hash) : _1 }
|
191
193
|
$VERBOSE = original_verbosity
|
192
194
|
|
193
|
-
service[:deploy].merge! @deploy[name] if @deploy[name]
|
194
|
-
|
195
195
|
pp_i = @publish_ports[name]&.reject { _1.class == String }
|
196
196
|
pp_s = @publish_ports[name]&.select { _1.class == String }
|
197
197
|
service[:ports] = pp_i&.zip(service[:ports] || pp_i)&.map { _1.join ':' }
|
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.71
|
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-
|
11
|
+
date: 2024-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|