dry-stack 0.0.42 → 0.0.44
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/stack.rb +20 -1
- 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: bd8ebff38b6413a5f834283868607fbf5c106de227afde3a4844df7c5e4e2077
|
4
|
+
data.tar.gz: 948814b4f3d71a0895478551ba9cbdb14efcdec255d0fca2c5f9519e05acc265
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a873346eff868b06029d9f51d1f9bbe3f9adcfac5b07b5fc93d592a2be3c097c43a740eb5cbce7a9d00e8faba0d8d637dadc13dc1665ba7f565d2a6f8a1766a
|
7
|
+
data.tar.gz: c8b6ef222321e5e7b1eb48c740422f93cf15ddfe38b1bc44ced0fa1429684de3f07e8ac9b428187285d715bb939f15246073536694a7495d38ff3e9f6e75f31d
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'yaml'
|
3
3
|
require 'optparse'
|
4
|
+
require 'digest'
|
4
5
|
|
5
6
|
module Dry
|
6
7
|
|
@@ -18,6 +19,7 @@ module Dry
|
|
18
19
|
def command(cmd)= @service[:command] = cmd
|
19
20
|
def entrypoint(cmd)= @service[:entrypoint] = cmd
|
20
21
|
def deploy_label(str)= @service[:deploy][:labels] << str
|
22
|
+
def config(name, opts)= (@service[:configs] ||= []) << {source: name.to_s }.merge(opts)
|
21
23
|
end
|
22
24
|
|
23
25
|
class Stack
|
@@ -44,6 +46,7 @@ module Dry
|
|
44
46
|
@ingress = {}
|
45
47
|
@deploy = {}
|
46
48
|
@labels = {}
|
49
|
+
@configs = {}
|
47
50
|
end
|
48
51
|
|
49
52
|
def stringify(obj)
|
@@ -85,6 +88,7 @@ module Dry
|
|
85
88
|
services: YAML.load(@services.to_yaml),
|
86
89
|
volumes: YAML.load(@volumes.to_yaml),
|
87
90
|
networks: YAML.load(@networks.to_yaml),
|
91
|
+
configs: YAML.load(@configs.to_yaml)
|
88
92
|
}
|
89
93
|
|
90
94
|
if @ingress.any?
|
@@ -161,7 +165,18 @@ module Dry
|
|
161
165
|
service[:ports] = pp_i&.zip(service[:ports] || pp_i)&.map { _1.join ':' }
|
162
166
|
service[:ports] = (service[:ports] || []) + pp_s unless pp_s.nil?
|
163
167
|
|
164
|
-
service[:environment].transform_values!{ !!_1 == _1 ? _1.to_s : _1 } # false
|
168
|
+
service[:environment].transform_values! { !!_1 == _1 ? _1.to_s : _1 } # (false|true) to string
|
169
|
+
end
|
170
|
+
|
171
|
+
compose[:configs].update(compose[:configs]) do |name, config|
|
172
|
+
if config[:file_content]
|
173
|
+
md5 = Digest::MD5.hexdigest config[:file_content]
|
174
|
+
fname = "./#{@name}.config(md5:#{md5}).#{name}"
|
175
|
+
File.write fname, config[:file_content]
|
176
|
+
{file: fname}.merge config.except(:file_content)
|
177
|
+
else
|
178
|
+
config
|
179
|
+
end
|
165
180
|
end
|
166
181
|
|
167
182
|
prune = ->(o) {
|
@@ -203,6 +218,10 @@ module Dry
|
|
203
218
|
@ingress.merge! services
|
204
219
|
end
|
205
220
|
|
221
|
+
def Config(name, opts)
|
222
|
+
@configs[name] = opts
|
223
|
+
end
|
224
|
+
|
206
225
|
def Deploy(services)
|
207
226
|
@deploy.merge! expand_hash(services)
|
208
227
|
end
|
data/lib/version.rb
CHANGED