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.
- checksums.yaml +4 -4
- data/lib/dry-stack/stack.rb +22 -16
- 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: 3c71ef427e2a4703a3653ef4e804d4e7b6e3f96ebcdbbd238949f397680b0416
|
4
|
+
data.tar.gz: df2eb1ce11120dea1e973863c550e6cad37063bf9469563909ef17fd584f0131
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a006773cc22c9c1eb18bdb297bca0fef62436daf40c09129c28dec205565339820407c764fbf55ff3746ca1c6488c3958e304cd939d16913489adca33196ca4a
|
7
|
+
data.tar.gz: cc0350b67c82ae974fb0567d0722c32ceb91902677264ac69b88a38617f1868cfa1bb4574d35a66e74c32a225f7b208922173ec010d841596eb88709303c3f92
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -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,
|
208
|
-
|
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
|
-
|
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