dry-stack 0.0.39 → 0.0.40

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 +21 -20
  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: 7e9b84c4033d29204a5625ad37ab81c03f23f828c164127e53c4d7421667ada6
4
+ data.tar.gz: 2c38a45e3951c7b70f4cc142f44850eaf4a6a9d3929a2e93b6aaad4a40f136e5
5
5
  SHA512:
6
- metadata.gz: 45b33ebc74270d9b17fbf5f5a3b4cde1118ebd753fa7fb75d103ec8d57689265b089df309aa42048fda9bbd37eed34f598d1bcc267e7e6388bb04e7997f757bc
7
- data.tar.gz: 836eb9f3f9f3b399910009c6ce30c2cde5d4663f6faf7cb827c2360821f7321ad6c90c3bcede99b9bf1ca0b4074fa620a37bcd435e148ca0bab7be08ebfab4bf
6
+ metadata.gz: 9086e6f00852383990845461c207cbec44750203929daf5b19698d2a11f60e6ee2074516adb5af2d5f8587b3d8dc9a3a026625dcea11a9e4ff7ffbb8a8d7cf34
7
+ data.tar.gz: 05615bde9a94a491066fab4b8e6045f517dd4e896e1b15f536543b2c4cf9e969cee82884d6b35f0605d0bdb6899f1c65dada887d56e70ebcbe2fae4815043642
@@ -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,6 +111,7 @@ 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
 
@@ -121,29 +121,30 @@ module Dry
121
121
  service[:deploy][:labels] += [
122
122
  'traefik.enable=true',
123
123
  "traefik.http.routers.#{service_name}.service=#{service_name}",
124
- "traefik.http.services.#{service_name}.loadbalancer.server.port=#{ingress[0][:port]}"
125
124
  ]
125
+ ingress.each_with_index do |ing, index|
126
+ ing[:port] ||= service[:ports]&.first
127
+ service[:deploy][:labels] <<
128
+ "traefik.http.services.#{service_name}-#{index}.loadbalancer.server.port=#{ing[:port]}"
129
+
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
126
140
 
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]
131
- 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}"
135
- ]
136
- end
137
-
138
- rule_group = ingress.map do|r|
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.40'
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.40
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B