dry-stack 0.0.83 → 0.0.85

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 699b765bc2706a898f06c1ba3409d93723584e567865f9b21800a2f800700dad
4
- data.tar.gz: 3a2ed784ad03723d09a19686a8f0204987a15876676e117596bbc5b24fa78419
3
+ metadata.gz: f8f1e3847018ae24bd44d57813f7fb37afaa95e1a2697426eea8a40593dc07bd
4
+ data.tar.gz: 5c64bd98e446a32f0edc36e98b5ef48e8812dc29183786e30f70263865dee2c2
5
5
  SHA512:
6
- metadata.gz: 3f98d9d33f3cdc6616e484f62ba41026c1e88cdbb7d19095087412ba3bb788d5841d166f2a3a4874561eaf0a0c13303609a6abeef479d8852d855bb694162d76
7
- data.tar.gz: 3fbd781699888422c806330c0bf3036e16a78017911bff5d46383b07834d7b6560d4b02073ce29c6813b4c841acf7689cd00dba89fdf555dd00f97ece7b26629
6
+ metadata.gz: 06bf607c465894d9b640b04c9209cca967a7430958281ff45d61501f67705c715cd5afa6cf7d93532619b7f27947d1eb8b33e3ff217364e74bb888fad087460d
7
+ data.tar.gz: bf1de07565b2adf380ae0189ea6f257c052793372c542070425bf779e087e8dd6f9183082852e84d6b59fe2c67d40313a65cc351cc855671a5ce744b1bf6cdf7
@@ -47,6 +47,7 @@ module Dry
47
47
  class ServiceFunction
48
48
  def initialize(service, &); @service = service; instance_exec(&) end
49
49
  def env(variables)= @service[:environment].merge! variables
50
+ def dns(dns)= ((@service[:dns] ||= []) << dns).flatten!
50
51
  def volume(opts)= ((@service[:volumes] ||= []) << opts).flatten!
51
52
  def image(name)= @service[:image] = name
52
53
  def ports(ports)= ((@service[:ports] ||= []) << ports).flatten!
@@ -58,6 +59,7 @@ module Dry
58
59
  def user(user) = @service[:user] = user # "${UID}:${GID}", "www-data:www-data"
59
60
  def network(names) = (@service[:networks] ||= []) << names
60
61
  def basic_auth(user_and_password) = @service[:basic_auth] = user_and_password
62
+ def ingress(ing) = ((@service[:ingress] ||=[]) << ing).flatten!
61
63
  end
62
64
 
63
65
  class SwarmFunction
@@ -144,7 +146,9 @@ module Dry
144
146
  end
145
147
 
146
148
  compose[:services].each do |name, service|
147
- ingress = [@ingress[name]].flatten.compact
149
+
150
+ ingress = [@ingress[name], service[:ingress] || [] ].flatten.compact
151
+
148
152
  service[:deploy] ||= {}
149
153
  service[:deploy][:labels] ||= []
150
154
  service[:deploy][:labels] += @labels.map { "#{_1}=#{_2}" }
@@ -169,6 +173,7 @@ module Dry
169
173
  ingress[0][:port] ||= service[:ports]&.first
170
174
 
171
175
  ingress.each_with_index do |ing, index|
176
+
172
177
  if service[:basic_auth]
173
178
  ba_user, ba_password, salt = service[:basic_auth].split ':'
174
179
  hashed_password = apr1_crypt ba_password, (salt || rand(36**8).to_s(36))
@@ -210,6 +215,7 @@ module Dry
210
215
  end
211
216
  end
212
217
  service.delete :basic_auth
218
+ service.delete :ingress
213
219
 
214
220
  service[:environment] = @environment[name].merge(service[:environment]) if @environment[name]
215
221
  service[:environment].merge! STACK_NAME: @name.to_s, STACK_SERVICE_NAME: name.to_s
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.0.83'
3
+ VERSION = '0.0.85'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.83
4
+ version: 0.0.85
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-20 00:00:00.000000000 Z
11
+ date: 2024-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake