dry-stack 0.0.78 → 0.0.80
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_compose.rb +2 -2
- data/lib/dry-stack/command_swarm_deploy.rb +1 -1
- data/lib/dry-stack/stack.rb +8 -2
- data/lib/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 494e6afe2e8c38f8109678bc6f8c484c77449cf0cff675f97cc81419f0405efb
|
4
|
+
data.tar.gz: 4f5944de12d4532a931697c61799343c25c3a68b4c98ae23ec683f3b0df6075c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd69e49a774071f6589affa27995b099d854dba54e7d9f31bd0e3a1f76eb62cf3eb647c622dfac1f831d9f9cc3de3c8bd7f9b1070ca3fe3346701bcf41fbceaf
|
7
|
+
data.tar.gz: 4340c7640966ac12f8302042a9e04f34a1404c01823b17aba4738b81b55a9e8557ce82737e762931996a7527a3139b9da128638c185f9924b3011813115a800d
|
@@ -2,10 +2,10 @@ require_relative 'command_line'
|
|
2
2
|
|
3
3
|
Dry::CommandLine::COMMANDS[:to_compose] = Class.new do
|
4
4
|
def run(stack, params, args, extra)
|
5
|
-
raise "
|
5
|
+
raise "none or one deploy name may be specified: #{args}" unless args.empty? || args.size == 1
|
6
6
|
_params = stack.options.merge params
|
7
7
|
stack.name = _params[:name] if _params[:name]
|
8
|
-
yaml = stack.to_compose(_params).lines[1..].join
|
8
|
+
yaml = stack.to_compose(_params, args[0]&.to_sym ).lines[1..].join
|
9
9
|
|
10
10
|
# substitute ENV variables
|
11
11
|
_params[:'no-env'] ? $stdout.puts(yaml) : system("echo \"#{yaml.gsub("`", '\\\`')}\"")
|
@@ -33,7 +33,7 @@ Dry::CommandLine::COMMANDS[:swarm_deploy] = Class.new do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
# substitute ENV variables
|
36
|
-
yaml = stack.to_compose(_params).lines[1..].join
|
36
|
+
yaml = stack.to_compose(_params, c_name).lines[1..].join
|
37
37
|
yaml = _params[:'no-env'] ? yaml : `echo \"#{yaml.gsub("`", '\\\`')}\"`
|
38
38
|
system " echo \"#{yaml.gsub("`", '\\\`')}\"" if _params[:v]
|
39
39
|
# system " echo \"#{yaml.gsub("`", '\\\`')}\" | docker stack deploy -c - #{stack.name} --prune --resolve-image changed"
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -61,6 +61,7 @@ module Dry
|
|
61
61
|
class SwarmFunction
|
62
62
|
def initialize(swarm, &); @swarm = swarm; instance_exec(&) end
|
63
63
|
def env(variables)= @swarm[:environment].merge! variables
|
64
|
+
def options(variables)= @swarm[:options].merge! variables
|
64
65
|
def context_host(host)= @swarm[:context_host] = host
|
65
66
|
def context_name(name)= @swarm[:context_name] = name
|
66
67
|
def stack_name(name)= @swarm[:stack_name] = name
|
@@ -119,7 +120,12 @@ module Dry
|
|
119
120
|
end
|
120
121
|
end
|
121
122
|
|
122
|
-
def to_compose(opts = @options )
|
123
|
+
def to_compose(opts = @options, deploy_name = nil )
|
124
|
+
if deploy_name
|
125
|
+
raise "Deploy not found: #{deploy_name}" unless @swarm_deploy[deploy_name]
|
126
|
+
|
127
|
+
opts.merge! @swarm_deploy[deploy_name][:options]
|
128
|
+
end
|
123
129
|
compose = {
|
124
130
|
# name: @name.to_s, # https://docs.docker.com/compose/compose-file/#name-top-level-element
|
125
131
|
# Not allowed by docker stack deploy
|
@@ -358,7 +364,7 @@ module Dry
|
|
358
364
|
def SwarmDeploy(name, opts = {}, &)
|
359
365
|
opts[:environment] = opts.delete(:env) if opts.key? :env
|
360
366
|
|
361
|
-
swarm = @swarm_deploy[name.to_sym] ||= { environment: {} }
|
367
|
+
swarm = @swarm_deploy[name.to_sym] ||= { environment: {}, options: {} }
|
362
368
|
swarm.merge! opts
|
363
369
|
SwarmFunction.new(swarm, &) if block_given?
|
364
370
|
end
|
data/lib/version.rb
CHANGED