Skip to content

Commit 5d966f5

Browse files
committed
update
1 parent c5200ba commit 5d966f5

5 files changed

Lines changed: 68 additions & 5 deletions

File tree

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
source "https://rubygems.org"
2-
ruby File.read(File.expand_path('.ruby-version', __dir__)).strip
2+
# ruby File.read(File.expand_path('.ruby-version', __dir__)).strip
33

44
gemspec
55
# gem 'dry-sack', path: '.'

lib/dry-stack/stack.rb

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,13 @@ def to_compose(opts = @options)
193193

194194
if ing[:host_sni]
195195
domain = opts[:tls_domain] || 'example.com'
196-
domain = ing[:host_sni].gsub('.*', ".#{domain}") if ing[:host_sni]&.include?('*')
196+
197+
if ing[:host_sni]&.include?('*')
198+
domain = ing[:host_sni].gsub('.*', ".#{domain}")
199+
else
200+
domain = ing[:host_sni]
201+
end
202+
197203
domain = ing[:tls_domain] if ing[:tls_domain]
198204

199205
ing[:passthrough] = false unless ing.key? :passthrough
@@ -221,7 +227,14 @@ def to_compose(opts = @options)
221227

222228
if opts[:traefik_tls]
223229
domain = opts[:tls_domain] || 'example.com'
224-
domain = ing[:host].gsub('.*', ".#{domain}") if ing[:host]&.include?('.*')
230+
if ing[:host]
231+
if ing[:host]&.include?('*')
232+
domain = ing[:host].gsub('*', domain)
233+
else
234+
domain = ing[:host]
235+
end
236+
end
237+
225238
domain = ing[:tls_domain] if ing[:tls_domain]
226239
service[:deploy][:labels] += [
227240
"traefik.http.routers.#{service_name}-#{index}.tls=true",
@@ -527,4 +540,3 @@ def Configuration(name, opts = {}, &b)
527540

528541
end
529542
end
530-

lib/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module Dry
22
class Stack
3-
VERSION = '0.1.53'
3+
VERSION = '0.1.54'
44
end
55
end

spec/data/stack9-compose.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,48 @@ services:
2121
ingress_routing:
2222
init: true
2323
image: "$REGISTRY_HOST/frontend"
24+
admin2:
25+
environment:
26+
STACK_NAME: stack
27+
STACK_SERVICE_NAME: admin2
28+
deploy:
29+
labels:
30+
- traefik.enable=true
31+
- traefik.http.routers.stack_admin2-0.service=stack_admin2-0
32+
- traefik.http.services.stack_admin2-0.loadbalancer.server.port=5000
33+
- traefik.http.routers.stack_admin2-0.tls=true
34+
- traefik.http.routers.stack_admin2-0.tls.certresolver=le
35+
- traefik.http.routers.stack_admin2-0.tls.domains[0].main=admin.test.com
36+
- traefik.http.routers.stack_admin2-0.rule=HostRegexp(`{name:admin\.test\.com}`)
37+
- traefik.tcp.routers.stack_admin2-1.tls=true
38+
- traefik.tcp.routers.stack_admin2-1.tls.certresolver=le
39+
- traefik.tcp.routers.stack_admin2-1.tls.domains[0].main=pgsql-override.admin.test.com
40+
- traefik.tcp.routers.stack_admin2-1.rule=HostSNI(`pgsql-override.admin.test.com`)
41+
- traefik.tcp.routers.stack_admin2-1.tls.passthrough=true
42+
- traefik.tcp.routers.stack_admin2-1.service=stack_admin2-1
43+
- traefik.tcp.routers.stack_admin2-1.entrypoints=postgres
44+
- traefik.tcp.services.stack_admin2-1.loadbalancer.server.port=5432
45+
- traefik.tcp.routers.stack_admin2-2.tls=true
46+
- traefik.tcp.routers.stack_admin2-2.tls.certresolver=le
47+
- traefik.tcp.routers.stack_admin2-2.tls.domains[0].main=test1.example.com
48+
- traefik.tcp.routers.stack_admin2-2.rule=HostSNI(`test1.example.com`)
49+
- traefik.tcp.routers.stack_admin2-2.tls.passthrough=false
50+
- traefik.tcp.routers.stack_admin2-2.service=stack_admin2-2
51+
- traefik.tcp.routers.stack_admin2-2.entrypoints=postgres
52+
- traefik.tcp.services.stack_admin2-2.loadbalancer.server.port=5000
53+
- traefik.tcp.routers.stack_admin2-3.tls=true
54+
- traefik.tcp.routers.stack_admin2-3.tls.certresolver=le
55+
- traefik.tcp.routers.stack_admin2-3.tls.domains[0].main=test2-override.admin.test.com
56+
- traefik.tcp.routers.stack_admin2-3.rule=HostSNI(`test2-override.admin.test.com`)
57+
- traefik.tcp.routers.stack_admin2-3.tls.passthrough=false
58+
- traefik.tcp.routers.stack_admin2-3.service=stack_admin2-3
59+
- traefik.tcp.routers.stack_admin2-3.entrypoints=postgres
60+
- traefik.tcp.services.stack_admin2-3.loadbalancer.server.port=5000
61+
networks:
62+
default:
63+
ingress_routing:
64+
init: true
65+
image: "$REGISTRY_HOST/frontend"
2466
networks:
2567
ingress_routing:
2668
external: true

spec/data/stack9.drs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,12 @@ Options traefik_tls: true
33
Ingress admin: {host: '~(admin|some)\..*', path: '/bar', tls_domain: 'admin.test.com'}
44

55
Service :admin, image: '$REGISTRY_HOST/frontend', env: { APP: 'admin' }, ports: 5000
6+
7+
8+
Service :admin2, image: '$REGISTRY_HOST/frontend', ports: 5000,
9+
ingress: [
10+
{ host: 'admin.test.com' },
11+
{ host_sni: 'pgsql.*', passthrough: true, port: 5432, entrypoints: 'postgres', tls_domain: 'pgsql-override.admin.test.com' },
12+
{ host_sni: 'test1.*', entrypoints: 'postgres' },
13+
{ host_sni: 'test2.*', tls_domain: 'test2-override.admin.test.com', entrypoints: 'postgres' }
14+
]

0 commit comments

Comments
 (0)