dry-stack 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/stack2.drs +1 -0
- data/lib/dry-stack/stack.rb +19 -0
- 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: d5f21e65df1e5cdb3f6fc7d28dd4c4f3e9c66db5de746af952d0353da1ecc4cb
|
4
|
+
data.tar.gz: 1cad2e0cf7cf1def43213d490173445db4df8036332b4ded90fd6095a552d8f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68640915ff636f73f85a5d3cf4be792aeaa541b3887c8b8da996d640193c49c839997639fe22f1bfc2d7b25c99cd41a479983ebed555a834480ad36fab4eb63c
|
7
|
+
data.tar.gz: cb262611e2c731eb9af706f267e2b40d7253ee070a774353ae89b956a330d4451525acb7196dc8e70f89443bfdb214bf76d1d485ae7f780a30f9f32f21995033
|
data/bin/stack2.drs
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
PublishPorts reports: 7000
|
2
2
|
Ingress reports: {host: 'reports.*', protocol: :http, port: 7000}
|
3
|
+
Deploy admin: { replica: 2, 'resources.limits': { cpus: 4, memory: '500M' } }
|
3
4
|
|
4
5
|
Service :admin, image: '$REGISTRY_HOST/frontend', env: { APP: 'admin' }, ports: 5000
|
5
6
|
Service :reports, image: '$REGISTRY_HOST/reports', env: { DB_URL: '$DB_URL' }
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -33,9 +33,22 @@ module Dry
|
|
33
33
|
@networks = {}
|
34
34
|
@publish_ports = {}
|
35
35
|
@ingress = {}
|
36
|
+
@deploy = {}
|
36
37
|
end
|
37
38
|
|
38
39
|
def stringify(hash) = hash.to_h { |k, v| [k.to_s, v.is_a?(Hash) ? stringify(v) : v] }
|
40
|
+
def expand_hash(hash)
|
41
|
+
hash.select { _1.to_s =~ /\./ }.each do |k, v|
|
42
|
+
name = k.to_s.scan(/([^\.]*)\.(.*)/).flatten
|
43
|
+
hash.delete k
|
44
|
+
hash[name[0]] ||= {}
|
45
|
+
hash[name[0]][name[1]] ||= {}
|
46
|
+
hash[name[0]][name[1]].merge! v if v.is_a?(Hash)
|
47
|
+
hash[name[0]][name[1]] = v unless v.is_a?(Hash)
|
48
|
+
end
|
49
|
+
hash.each { expand_hash(_2) if _2.is_a?(Hash) }
|
50
|
+
hash
|
51
|
+
end
|
39
52
|
|
40
53
|
def nginx_host2regexp(str)
|
41
54
|
str.to_s.gsub('.', '\.').gsub('*', '.*')
|
@@ -78,6 +91,8 @@ module Dry
|
|
78
91
|
]
|
79
92
|
end
|
80
93
|
|
94
|
+
service[:deploy].merge! @deploy[name] if @deploy[name]
|
95
|
+
|
81
96
|
service[:ports] = @publish_ports[name]&.zip(service[:ports] || @publish_ports[name])&.map { _1.join ':' }
|
82
97
|
end
|
83
98
|
|
@@ -110,6 +125,10 @@ module Dry
|
|
110
125
|
@ingress.merge! services
|
111
126
|
end
|
112
127
|
|
128
|
+
def Deploy(services)
|
129
|
+
@deploy.merge! expand_hash(services)
|
130
|
+
end
|
131
|
+
|
113
132
|
def Network(name, opts = {})
|
114
133
|
@networks[name] ||= {}
|
115
134
|
@networks[name].merge! opts
|
data/lib/version.rb
CHANGED