dry-stack 0.0.37 → 0.0.39
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 +22 -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: 50bc59b593a8772c5e17d4c9d6b3f3d3e9417ad75ed38c3e29242ae5993fb5df
|
4
|
+
data.tar.gz: 9b300abb3d36ef7ec3288e881f203afe5c8538b3c5911fb7d4211f46f90da3a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45b33ebc74270d9b17fbf5f5a3b4cde1118ebd753fa7fb75d103ec8d57689265b089df309aa42048fda9bbd37eed34f598d1bcc267e7e6388bb04e7997f757bc
|
7
|
+
data.tar.gz: 836eb9f3f9f3b399910009c6ce30c2cde5d4663f6faf7cb827c2360821f7321ad6c90c3bcede99b9bf1ca0b4074fa620a37bcd435e148ca0bab7be08ebfab4bf
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -16,6 +16,7 @@ module Dry
|
|
16
16
|
def image(name)= @service[:image] = name
|
17
17
|
def ports(ports)= ((@service[:ports] ||= []) << ports).flatten!
|
18
18
|
def command(cmd)= @service[:command] = cmd
|
19
|
+
def entrypoint(cmd)= @service[:entrypoint] = cmd
|
19
20
|
def deploy_label(str)= @service[:deploy][:labels] << str
|
20
21
|
end
|
21
22
|
|
@@ -91,33 +92,36 @@ module Dry
|
|
91
92
|
end
|
92
93
|
|
93
94
|
compose[:services].each do |name, service|
|
94
|
-
|
95
|
+
ingress = [@ingress[name]].flatten
|
96
|
+
ingress[0][:port] ||= service[:ports]&.first if ingress[0]
|
95
97
|
service[:deploy] ||= {}
|
96
98
|
service[:deploy][:labels] ||= []
|
97
99
|
service[:deploy][:labels] += @labels.map { "#{_1}=#{_2}" }
|
98
100
|
|
99
|
-
if
|
101
|
+
if ingress[0] && (opts[:ingress] || opts[:traefik] || opts[:traefik_tls])
|
100
102
|
service[:networks] ||= []
|
101
103
|
service[:networks] << 'default' if service[:networks].empty?
|
102
104
|
service[:networks] << 'ingress_routing'
|
103
105
|
end
|
104
106
|
|
105
|
-
|
106
|
-
|
107
|
-
|
107
|
+
ingress.each do |rule|
|
108
|
+
if opts[:host_sed] && rule[:host]
|
109
|
+
a, b = opts[:host_sed].split('/').reject(&:empty?)
|
110
|
+
rule[:host].gsub! %r{#{a}}, b
|
111
|
+
end
|
108
112
|
end
|
109
113
|
|
110
|
-
if
|
111
|
-
service[:deploy][:labels] =
|
114
|
+
if ingress[0] && opts[:ingress]
|
115
|
+
service[:deploy][:labels] = ingress[0]&.map { |k, v| "ingress.#{k}=#{v}" }
|
112
116
|
end
|
113
117
|
|
114
118
|
service_name = "#{@name}_#{name}"
|
115
119
|
|
116
|
-
if
|
120
|
+
if ingress[0] && (opts[:traefik] || opts[:traefik_tls])
|
117
121
|
service[:deploy][:labels] += [
|
118
122
|
'traefik.enable=true',
|
119
123
|
"traefik.http.routers.#{service_name}.service=#{service_name}",
|
120
|
-
"traefik.http.services.#{service_name}.loadbalancer.server.port=#{
|
124
|
+
"traefik.http.services.#{service_name}.loadbalancer.server.port=#{ingress[0][:port]}"
|
121
125
|
]
|
122
126
|
|
123
127
|
if opts[:traefik_tls]
|
@@ -131,11 +135,15 @@ module Dry
|
|
131
135
|
]
|
132
136
|
end
|
133
137
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
138
|
+
rule_group = ingress.map do|r|
|
139
|
+
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 ' && '
|
144
|
+
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}"
|
139
147
|
end
|
140
148
|
|
141
149
|
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.39
|
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-
|
11
|
+
date: 2023-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|