dry-stack 0.0.82 → 0.0.84
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 +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