dry-stack 0.0.55 → 0.0.57

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dry-stack/stack.rb +22 -16
  3. data/lib/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c7d2d41bcd06f472670d0ccd39d48aa522ba263a52bf261e9ddeb0c8706a7c3
4
- data.tar.gz: c8d0f679e1403247ee48ef9fc7f071fb2ae27b3f028f08e3690144465453f9f6
3
+ metadata.gz: 3c71ef427e2a4703a3653ef4e804d4e7b6e3f96ebcdbbd238949f397680b0416
4
+ data.tar.gz: df2eb1ce11120dea1e973863c550e6cad37063bf9469563909ef17fd584f0131
5
5
  SHA512:
6
- metadata.gz: 6562bd497bdeb86b5a526f995a2f19505973add70464f3859779d4359430f7a14f5ab898e771684127461b33655654cc2769d4d6f034f3225f8b7297046c1635
7
- data.tar.gz: e88f4d9a6df6aaa2188ca62b07e9891dfd156a36dd705dd074f5306ab3a5b6a6c0027ab98d12b782a42ad4815e3cb94917cd9b62be32c6a4bf8214be58e77fb6
6
+ metadata.gz: a006773cc22c9c1eb18bdb297bca0fef62436daf40c09129c28dec205565339820407c764fbf55ff3746ca1c6488c3958e304cd939d16913489adca33196ca4a
7
+ data.tar.gz: cc0350b67c82ae974fb0567d0722c32ceb91902677264ac69b88a38617f1868cfa1bb4574d35a66e74c32a225f7b208922173ec010d841596eb88709303c3f92
@@ -59,6 +59,7 @@ module Dry
59
59
  @services = {}
60
60
  @networks = {}
61
61
  @volumes = {}
62
+ @environment = {}
62
63
  @publish_ports = {}
63
64
  @ingress = {}
64
65
  @deploy = {}
@@ -67,14 +68,6 @@ module Dry
67
68
  @logging = {}
68
69
  end
69
70
 
70
- def stringify(obj)
71
- case
72
- when obj.is_a?(Hash); obj.to_h { |k, v| [k.to_s, stringify(v)] }
73
- when obj.is_a?(Array); obj.map { stringify(_1) }
74
- else obj
75
- end
76
- end
77
-
78
71
  def expand_hash(hash)
79
72
  hash.select { _1.to_s =~ /\./ }.each do |k, v|
80
73
  name = k.to_s.scan(/([^\.]*)\.(.*)/).flatten
@@ -132,15 +125,11 @@ module Dry
132
125
  end
133
126
  end
134
127
 
135
- if ingress[0] && opts[:ingress]
136
- ingress[0][:port] ||= service[:ports]&.first
137
- service[:deploy][:labels] = ingress[0]&.map { |k, v| "ingress.#{k}=#{v}" }
138
- end
139
-
140
128
  service_name = "#{@name}_#{name}"
141
129
 
142
130
  if ingress[0] && (opts[:traefik] || opts[:traefik_tls])
143
131
  service[:deploy][:labels] << 'traefik.enable=true'
132
+ ingress[0][:port] ||= service[:ports]&.first
144
133
 
145
134
  ingress.each_with_index do |ing, index|
146
135
  ing[:port] ||= service[:ports]&.first
@@ -183,6 +172,9 @@ module Dry
183
172
  service[:ports] = pp_i&.zip(service[:ports] || pp_i)&.map { _1.join ':' }
184
173
  service[:ports] = (service[:ports] || []) + pp_s unless pp_s.nil?
185
174
 
175
+ service[:environment] = @environment[name].merge(service[:environment]) if @environment[name]
176
+ service[:environment].merge! STACK_NAME: @name, STACK_SERVICE_NAME: name
177
+
186
178
  service[:environment].transform_values! { !!_1 == _1 ? _1.to_s : _1 } # (false|true) to string
187
179
  service[:logging] ||= @logging[name.to_sym]
188
180
  end
@@ -204,11 +196,15 @@ module Dry
204
196
  }
205
197
  prune[compose]
206
198
 
207
- each_recursive compose do |_path, node, _v|
208
- _path.last[node] = _v.to_s if node.to_s == 'fluentd-async'
199
+ each_recursive _root: compose do |_path, node, v|
200
+ v.transform_keys!(&:to_s) if v.is_a? Hash
201
+ node.transform_keys!(&:to_s) if node.is_a? Hash
202
+ _path.last[node] = v.to_s if v.is_a? Symbol
203
+
204
+ _path.last[node] = v.to_s if node.to_s == 'fluentd-async'
209
205
  end
210
206
 
211
- stringify(compose).to_yaml
207
+ compose.to_yaml
212
208
  end
213
209
 
214
210
  def PublishPorts(ports)
@@ -256,6 +252,16 @@ module Dry
256
252
  end
257
253
  end
258
254
 
255
+ def Environment(names = nil, envs)
256
+ if names
257
+ [names].flatten.each do |name|
258
+ (@environment[name.to_sym] ||= {}).merge! envs
259
+ end
260
+ else
261
+ @environment.merge! envs
262
+ end
263
+ end
264
+
259
265
  def Network(name, opts = {})
260
266
  @networks[name] ||= {}
261
267
  @networks[name].merge! opts
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.0.55'
3
+ VERSION = '0.0.57'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.55
4
+ version: 0.0.57
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B