dry-stack 0.0.38 → 0.0.40
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 -20
- 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: 7e9b84c4033d29204a5625ad37ab81c03f23f828c164127e53c4d7421667ada6
|
4
|
+
data.tar.gz: 2c38a45e3951c7b70f4cc142f44850eaf4a6a9d3929a2e93b6aaad4a40f136e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9086e6f00852383990845461c207cbec44750203929daf5b19698d2a11f60e6ee2074516adb5af2d5f8587b3d8dc9a3a026625dcea11a9e4ff7ffbb8a8d7cf34
|
7
|
+
data.tar.gz: 05615bde9a94a491066fab4b8e6045f517dd4e896e1b15f536543b2c4cf9e969cee82884d6b35f0605d0bdb6899f1c65dada887d56e70ebcbe2fae4815043642
|
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
|
|
@@ -92,7 +93,6 @@ module Dry
|
|
92
93
|
|
93
94
|
compose[:services].each do |name, service|
|
94
95
|
ingress = [@ingress[name]].flatten
|
95
|
-
ingress[0][:port] ||= service[:ports]&.first if ingress[0]
|
96
96
|
service[:deploy] ||= {}
|
97
97
|
service[:deploy][:labels] ||= []
|
98
98
|
service[:deploy][:labels] += @labels.map { "#{_1}=#{_2}" }
|
@@ -111,6 +111,7 @@ module Dry
|
|
111
111
|
end
|
112
112
|
|
113
113
|
if ingress[0] && opts[:ingress]
|
114
|
+
ingress[0][:port] ||= service[:ports]&.first
|
114
115
|
service[:deploy][:labels] = ingress[0]&.map { |k, v| "ingress.#{k}=#{v}" }
|
115
116
|
end
|
116
117
|
|
@@ -120,29 +121,30 @@ module Dry
|
|
120
121
|
service[:deploy][:labels] += [
|
121
122
|
'traefik.enable=true',
|
122
123
|
"traefik.http.routers.#{service_name}.service=#{service_name}",
|
123
|
-
"traefik.http.services.#{service_name}.loadbalancer.server.port=#{ingress[0][:port]}"
|
124
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
|
125
140
|
|
126
|
-
if opts[:traefik_tls]
|
127
|
-
domain = opts[:tls_domain] || 'example.com'
|
128
|
-
domain = @ingress[name][:host].gsub('.*', ".#{domain}") if @ingress[name][:host]
|
129
|
-
domain = @ingress[name][:tls_domain] if @ingress[name][:tls_domain]
|
130
|
-
service[:deploy][:labels] += [
|
131
|
-
"traefik.http.routers.#{service_name}.tls=true",
|
132
|
-
"traefik.http.routers.#{service_name}.tls.certresolver=le",
|
133
|
-
"traefik.http.routers.#{service_name}.tls.domains[0].main=#{domain}"
|
134
|
-
]
|
135
|
-
end
|
136
|
-
|
137
|
-
rule_group = ingress.map do|r|
|
138
141
|
rule = []
|
139
|
-
rule << "HostRegexp(`{name:#{nginx_host2regexp
|
140
|
-
rule << "PathPrefix(`#{nginx_host2regexp
|
141
|
-
rule << "#{
|
142
|
-
|
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 ' && '}"
|
143
147
|
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}"
|
146
148
|
end
|
147
149
|
|
148
150
|
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.40
|
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
|