dry-stack 0.0.69 → 0.0.71

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 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