dry-stack 0.0.39 → 0.0.41

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dry-stack/stack.rb +23 -22
  3. data/lib/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50bc59b593a8772c5e17d4c9d6b3f3d3e9417ad75ed38c3e29242ae5993fb5df
4
- data.tar.gz: 9b300abb3d36ef7ec3288e881f203afe5c8538b3c5911fb7d4211f46f90da3a2
3
+ metadata.gz: ba3e8a1af6b73dab3938541b4e57ff3b4cd8a9cc745ce3a0376c218189b637c0
4
+ data.tar.gz: c99d06063a7c31100aa58b7a8b1dc1bbabf5543aa45da1ed4e50a5b9d16c33ff
5
5
  SHA512:
6
- metadata.gz: 45b33ebc74270d9b17fbf5f5a3b4cde1118ebd753fa7fb75d103ec8d57689265b089df309aa42048fda9bbd37eed34f598d1bcc267e7e6388bb04e7997f757bc
7
- data.tar.gz: 836eb9f3f9f3b399910009c6ce30c2cde5d4663f6faf7cb827c2360821f7321ad6c90c3bcede99b9bf1ca0b4074fa620a37bcd435e148ca0bab7be08ebfab4bf
6
+ metadata.gz: 465baf756681438604e591107265a16b5f456ba8c92adfeec256d32abc8e8d162a23c658c0be1449b9b2b2f1f42f7d2f8603cdbc15ce6911a46c61afa63ae6ed
7
+ data.tar.gz: 3b20f234381bf01bbcd95f7e65762473439074fee9665bc34443dff4b7e71d1c7df960187436070e18f02c6bccd84ee7c744ccc4f868ce4407a29a350dc01186
@@ -93,7 +93,6 @@ module Dry
93
93
 
94
94
  compose[:services].each do |name, service|
95
95
  ingress = [@ingress[name]].flatten
96
- ingress[0][:port] ||= service[:ports]&.first if ingress[0]
97
96
  service[:deploy] ||= {}
98
97
  service[:deploy][:labels] ||= []
99
98
  service[:deploy][:labels] += @labels.map { "#{_1}=#{_2}" }
@@ -112,38 +111,40 @@ module Dry
112
111
  end
113
112
 
114
113
  if ingress[0] && opts[:ingress]
114
+ ingress[0][:port] ||= service[:ports]&.first
115
115
  service[:deploy][:labels] = ingress[0]&.map { |k, v| "ingress.#{k}=#{v}" }
116
116
  end
117
117
 
118
118
  service_name = "#{@name}_#{name}"
119
119
 
120
120
  if ingress[0] && (opts[:traefik] || opts[:traefik_tls])
121
- service[:deploy][:labels] += [
122
- 'traefik.enable=true',
123
- "traefik.http.routers.#{service_name}.service=#{service_name}",
124
- "traefik.http.services.#{service_name}.loadbalancer.server.port=#{ingress[0][:port]}"
125
- ]
126
-
127
- if opts[:traefik_tls]
128
- domain = opts[:tls_domain] || 'example.com'
129
- domain = @ingress[name][:host].gsub('.*', ".#{domain}") if @ingress[name][:host]
130
- domain = @ingress[name][:tls_domain] if @ingress[name][:tls_domain]
121
+ service[:deploy][:labels] << 'traefik.enable=true'
122
+
123
+ ingress.each_with_index do |ing, index|
124
+ ing[:port] ||= service[:ports]&.first
131
125
  service[:deploy][:labels] += [
132
- "traefik.http.routers.#{service_name}.tls=true",
133
- "traefik.http.routers.#{service_name}.tls.certresolver=le",
134
- "traefik.http.routers.#{service_name}.tls.domains[0].main=#{domain}"
126
+ "traefik.http.routers.#{service_name}-#{index}.service=#{service_name}-#{index}",
127
+ "traefik.http.services.#{service_name}-#{index}.loadbalancer.server.port=#{ing[:port]}"
135
128
  ]
136
- end
137
129
 
138
- rule_group = ingress.map do|r|
130
+ if opts[:traefik_tls]
131
+ domain = opts[:tls_domain] || 'example.com'
132
+ domain = @ingress[name][:host].gsub('.*', ".#{domain}") if @ingress[name][:host]
133
+ domain = @ingress[name][:tls_domain] if @ingress[name][:tls_domain]
134
+ service[:deploy][:labels] += [
135
+ "traefik.http.routers.#{service_name}-#{index}.tls=true",
136
+ "traefik.http.routers.#{service_name}-#{index}.tls.certresolver=le",
137
+ "traefik.http.routers.#{service_name}-#{index}.tls.domains[0].main=#{domain}"
138
+ ]
139
+ end
140
+
139
141
  rule = []
140
- rule << "HostRegexp(`{name:#{nginx_host2regexp r[:host]}}`)" if r[:host]
141
- rule << "PathPrefix(`#{nginx_host2regexp r[:path]}`)" if r[:path]
142
- rule << "#{r[:rule]}" if r[:rule]
143
- rule.join ' && '
142
+ rule << "HostRegexp(`{name:#{nginx_host2regexp ing[:host]}}`)" if ing[:host]
143
+ rule << "PathPrefix(`#{nginx_host2regexp ing[:path]}`)" if ing[:path]
144
+ rule << "#{ing[:rule]}" if ing[:rule]
145
+
146
+ service[:deploy][:labels] << "traefik.http.routers.#{service_name}-#{index}.rule=#{rule.join ' && '}"
144
147
  end
145
- rule = rule_group.size > 1 ? rule_group.map{"(#{_1})"}.join(' || ') : rule_group[0]
146
- service[:deploy][:labels] << "traefik.http.routers.#{service_name}.rule=#{rule}"
147
148
  end
148
149
 
149
150
  hash = {'service-name': service_name}
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.0.39'
3
+ VERSION = '0.0.41'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.39
4
+ version: 0.0.41
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B