dry-stack 0.0.82 → 0.0.84
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 +14 -9
- 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: c0bd1b1e2e584eb1d7e95a2c56999710d82e0c9364eee5962b52c2897df10192
|
4
|
+
data.tar.gz: c0ddbe4c8df56f263fe7c9e74a9df399ac326e434ab876c95af8c507182c903b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0baaa4ac39ea9aedf328cea616ee84ae529aaf059c3ea14e1074bdb6442dd3d7b1efe538ea4bea3df9e0a2c33e6dd8bfbffe0e732549290fe2a2b6e346e17e3
|
7
|
+
data.tar.gz: 8b6ca11354cef5eab3f85f8ebcb4b20a31180911bcf064d1fd10469a3fb12a585daa045e7d6c1215ac9a057ce8602730ab1c7465bb4747469d683a5d69579636
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -58,6 +58,7 @@ module Dry
|
|
58
58
|
def user(user) = @service[:user] = user # "${UID}:${GID}", "www-data:www-data"
|
59
59
|
def network(names) = (@service[:networks] ||= []) << names
|
60
60
|
def basic_auth(user_and_password) = @service[:basic_auth] = user_and_password
|
61
|
+
def ingress(ing) = ((@service[:ingress] ||=[]) << ing).flatten!
|
61
62
|
end
|
62
63
|
|
63
64
|
class SwarmFunction
|
@@ -144,19 +145,13 @@ module Dry
|
|
144
145
|
end
|
145
146
|
|
146
147
|
compose[:services].each do |name, service|
|
147
|
-
|
148
|
+
|
149
|
+
ingress = [@ingress[name], service[:ingress] || [] ].flatten.compact
|
150
|
+
|
148
151
|
service[:deploy] ||= {}
|
149
152
|
service[:deploy][:labels] ||= []
|
150
153
|
service[:deploy][:labels] += @labels.map { "#{_1}=#{_2}" }
|
151
154
|
|
152
|
-
if service[:basic_auth]
|
153
|
-
ba_user, ba_password, salt = service[:basic_auth].split ':'
|
154
|
-
hashed_password = apr1_crypt ba_password, (salt || rand(36**8).to_s(36))
|
155
|
-
service[:deploy][:labels] << "traefik.http.middlewares.%{service-name}_auth.basicauth.users=#{ba_user}:#{hashed_password.gsub('$','$$')}"
|
156
|
-
service[:deploy][:labels] << "traefik.http.routers.%{service-name}.middlewares=%{service-name}_auth"
|
157
|
-
service.delete :basic_auth
|
158
|
-
end
|
159
|
-
|
160
155
|
if ingress[0] && (opts[:ingress] || opts[:traefik] || opts[:traefik_tls])
|
161
156
|
service[:networks] ||= []
|
162
157
|
service[:networks] << 'default' if service[:networks].empty?
|
@@ -177,6 +172,14 @@ module Dry
|
|
177
172
|
ingress[0][:port] ||= service[:ports]&.first
|
178
173
|
|
179
174
|
ingress.each_with_index do |ing, index|
|
175
|
+
|
176
|
+
if service[:basic_auth]
|
177
|
+
ba_user, ba_password, salt = service[:basic_auth].split ':'
|
178
|
+
hashed_password = apr1_crypt ba_password, (salt || rand(36**8).to_s(36))
|
179
|
+
service[:deploy][:labels] << "traefik.http.middlewares.#{service_name}-#{index}_auth.basicauth.users=#{ba_user}:#{hashed_password.gsub('$','$$')}"
|
180
|
+
service[:deploy][:labels] << "traefik.http.routers.#{service_name}-#{index}.middlewares=#{service_name}-#{index}_auth"
|
181
|
+
end
|
182
|
+
|
180
183
|
ing[:port] ||= service[:ports]&.first
|
181
184
|
service[:deploy][:labels] += [
|
182
185
|
"traefik.http.routers.#{service_name}-#{index}.service=#{service_name}-#{index}",
|
@@ -210,6 +213,8 @@ module Dry
|
|
210
213
|
end
|
211
214
|
end
|
212
215
|
end
|
216
|
+
service.delete :basic_auth
|
217
|
+
service.delete :ingress
|
213
218
|
|
214
219
|
service[:environment] = @environment[name].merge(service[:environment]) if @environment[name]
|
215
220
|
service[:environment].merge! STACK_NAME: @name.to_s, STACK_SERVICE_NAME: name.to_s
|
data/lib/version.rb
CHANGED