dry-stack 0.0.37 → 0.0.38
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 +21 -14
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 552fc69a9e66540b6dda0684697a9f6d61fca3df74237622d7c332bbdff055ef
|
4
|
+
data.tar.gz: 47525a271a081a4eb8f0ced2ffed4ef8292e86959efcb45aa0e08aff2a86a4e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: abdc1e2747cfe02adedbaff0c56d5b2ccba4406c4705313b618e1889bd6a47bcba6d0f0cc9b1b0eaaa73fa62f511ab734c1d07c839a8ca9f070c405365783c48
|
7
|
+
data.tar.gz: e07c5699910cbaecda40dceab572a693e20bb069526b340d1763549c8354a2b2d7ce82ba294909bff4f2de5b841b09e6d24c62c6b7b656108c5d5c4fbd49a5c6
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -91,33 +91,36 @@ module Dry
|
|
91
91
|
end
|
92
92
|
|
93
93
|
compose[:services].each do |name, service|
|
94
|
-
|
94
|
+
ingress = [@ingress[name]].flatten
|
95
|
+
ingress[0][:port] ||= service[:ports]&.first if ingress[0]
|
95
96
|
service[:deploy] ||= {}
|
96
97
|
service[:deploy][:labels] ||= []
|
97
98
|
service[:deploy][:labels] += @labels.map { "#{_1}=#{_2}" }
|
98
99
|
|
99
|
-
if
|
100
|
+
if ingress[0] && (opts[:ingress] || opts[:traefik] || opts[:traefik_tls])
|
100
101
|
service[:networks] ||= []
|
101
102
|
service[:networks] << 'default' if service[:networks].empty?
|
102
103
|
service[:networks] << 'ingress_routing'
|
103
104
|
end
|
104
105
|
|
105
|
-
|
106
|
-
|
107
|
-
|
106
|
+
ingress.each do |rule|
|
107
|
+
if opts[:host_sed] && rule[:host]
|
108
|
+
a, b = opts[:host_sed].split('/').reject(&:empty?)
|
109
|
+
rule[:host].gsub! %r{#{a}}, b
|
110
|
+
end
|
108
111
|
end
|
109
112
|
|
110
|
-
if
|
111
|
-
service[:deploy][:labels] =
|
113
|
+
if ingress[0] && opts[:ingress]
|
114
|
+
service[:deploy][:labels] = ingress[0]&.map { |k, v| "ingress.#{k}=#{v}" }
|
112
115
|
end
|
113
116
|
|
114
117
|
service_name = "#{@name}_#{name}"
|
115
118
|
|
116
|
-
if
|
119
|
+
if ingress[0] && (opts[:traefik] || opts[:traefik_tls])
|
117
120
|
service[:deploy][:labels] += [
|
118
121
|
'traefik.enable=true',
|
119
122
|
"traefik.http.routers.#{service_name}.service=#{service_name}",
|
120
|
-
"traefik.http.services.#{service_name}.loadbalancer.server.port=#{
|
123
|
+
"traefik.http.services.#{service_name}.loadbalancer.server.port=#{ingress[0][:port]}"
|
121
124
|
]
|
122
125
|
|
123
126
|
if opts[:traefik_tls]
|
@@ -131,11 +134,15 @@ module Dry
|
|
131
134
|
]
|
132
135
|
end
|
133
136
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
137
|
+
rule_group = ingress.map do|r|
|
138
|
+
rule = []
|
139
|
+
rule << "HostRegexp(`{name:#{nginx_host2regexp r[:host]}}`)" if r[:host]
|
140
|
+
rule << "PathPrefix(`#{nginx_host2regexp r[:path]}`)" if r[:path]
|
141
|
+
rule << "#{r[:rule]}" if r[:rule]
|
142
|
+
rule.join ' && '
|
143
|
+
end
|
144
|
+
rule = rule_group.size > 1 ? rule_group.map{"(#{_1})"}.join(' || ') : rule_group[0]
|
145
|
+
service[:deploy][:labels] << "traefik.http.routers.#{service_name}.rule=#{rule}"
|
139
146
|
end
|
140
147
|
|
141
148
|
hash = {'service-name': service_name}
|
data/lib/version.rb
CHANGED
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.
|
4
|
+
version: 0.0.38
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artyom B
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-07-
|
11
|
+
date: 2023-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|