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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4d18a6292393e8f5f02702fc817a79919e54ad2ba51741593befcee11d60e42
4
- data.tar.gz: 9cc4966982e230b7917ba8b0580cfa6bf6aa9ccea39bb8646a660dbd7249ce2e
3
+ metadata.gz: '068cf557c3a44aece001366bcd147616d4e6aafc3db1f6941a7b0b79c3db6799'
4
+ data.tar.gz: f73cdb06ddd54b2ea5b9744257172a196af3b34a4b08039580e4391e59959f67
5
5
  SHA512:
6
- metadata.gz: b74523d6dafa1ba2be675a221ca7b9f4f064c0d1e5cbbc0e10505b881c7b0ffd19dfdef5ba29f49ddecdbcea09b537fb60b7e79d4f2a88d63a68c1d04bf554a6
7
- data.tar.gz: c67d9edd77c96176e80d9b6a0511fbe3ebab6d3f4f02fbcc72dd4de247af8c382a145d12f24f6e77da2276ad33670d711ad63979eaa6bf1f27761eb5b28071b6
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
- exec_i "docker stack deploy -c - #{stack.name} --prune --resolve-image changed", yaml
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
 
@@ -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!{ _1 % hash }
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
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.0.69'
3
+ VERSION = '0.0.71'
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.0.69
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-02-29 00:00:00.000000000 Z
11
+ date: 2024-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake