dry-stack 0.0.17 → 0.0.18

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e144f42147da952c0e65601dae18a2acc24918481efb5e663b50bcac10e3e412
4
- data.tar.gz: 177ceb9ac90bc47533dba089def9cfa0e942a9e3ab9571f1fef9a95d8a46f804
3
+ metadata.gz: 7f98dfb71085af4d05dde33b4f45eb483af0aca4c80350d5940dbec63c2cbd45
4
+ data.tar.gz: e655689e2114bfbafff227349a874bfeaa3c8b07fc27e7a784ea692957a9b282
5
5
  SHA512:
6
- metadata.gz: 409852566e39b2e0c29ccfe89aaf99b4b2a9837825808f278bf8c775f31e1750ed37a923be948a2a51060807c799d3de32fb867a889428fd365e5ed7ba22cfee
7
- data.tar.gz: 0fe630b87412fde207f98c6196631db42d66a7b5e4b95dd5a85f8b83d0e8ae89e055df66974f37c67726d58af2788a412f41b68992f8ebbfd45937af023b3d6a
6
+ metadata.gz: 96a1db615d902109194a3600876ebbd6a029681b47fa8e82b8b78efbb61db74532892277fd1ac95fdf02a9a902c095981e0bf51e469f55ff9e5a75a948ec553d
7
+ data.tar.gz: 7960baa3ef7ebbab1bea4b6c7947fe198ee446402a51121d641e287f44e93e335e5acc3269b42a040a21c7a2b571dee700c29353a0b8f6bca9646258a9194be7
@@ -42,6 +42,7 @@ module Dry
42
42
  o.on('', '--ingress', 'Generate ingress labels') { true }
43
43
  o.on('', '--traefik', 'Generate traefik labels') { true }
44
44
  o.on('', '--traefik_tls', 'Generate traefik tls labels') { true }
45
+ o.on('', '--host_sed /from/to/', 'Sed ingress host /*/dev.*/')
45
46
  o.on('-n', '--no-env', 'Do not process env variables') { true }
46
47
  o.on('-h', '--help') { puts o; exit }
47
48
  o.parse! args, into: params
@@ -75,40 +75,46 @@ module Dry
75
75
  service[:deploy] ||= {}
76
76
  service[:deploy][:labels] ||= []
77
77
 
78
- if @ingress[name] && (opts[:ingress] || opts[:traefik])
78
+ if @ingress[name] && (opts[:ingress] || opts[:traefik] || opts[:traefik_tls])
79
79
  service[:networks] ||= []
80
80
  service[:networks] << 'default' if service[:networks].empty?
81
81
  service[:networks] << 'ingress_routing'
82
82
  end
83
83
 
84
+ if opts[:host_sed] && @ingress.dig(name,:host)
85
+ a, b = opts[:host_sed].split('/').reject(&:empty?)
86
+ @ingress[name][:host].gsub! %r{#{a}}, b
87
+ end
88
+
84
89
  if @ingress[name] && opts[:ingress]
85
90
  service[:deploy][:labels] = @ingress[name]&.map { |k, v| "ingress.#{k}=#{v}" }
86
91
  end
87
92
 
88
- if @ingress[name] && opts[:traefik]
93
+ if @ingress[name] && (opts[:traefik] || opts[:traefik_tls])
89
94
  service_name = "#{@name}_#{name}"
90
- service[:deploy][:labels] += [
91
- 'traefik.enable=true',
92
- "traefik.http.routers.#{service_name}.service=#{service_name}",
93
- "traefik.http.services.#{service_name}.loadbalancer.server.port=#{@ingress[name][:port]}",
94
- "traefik.http.routers.#{service_name}.rule=HostRegexp(`{name:#{nginx_host2regexp @ingress[name][:host]}}`)"
95
- ]
96
- end
97
95
 
98
- if @ingress[name] && opts[:traefik_tls]
99
- service_name = "#{@name}_#{name}"
100
96
  service[:deploy][:labels] += [
101
97
  'traefik.enable=true',
102
98
  "traefik.http.routers.#{service_name}.service=#{service_name}",
103
99
  "traefik.http.services.#{service_name}.loadbalancer.server.port=#{@ingress[name][:port]}",
104
- "traefik.http.routers.#{service_name}.rule=HostRegexp(`{name:#{nginx_host2regexp @ingress[name][:host]}}`)",
105
- "traefik.http.routers.#{service_name}.entrypoints=http",
106
- "traefik.http.routers.#{service_name}.middlewares=service_stack-https-redirect",
107
- "traefik.http.routers.#{service_name}.rule=Host(`${REGISTRY_HOSTNAME}`)",
108
- "traefik.http.routers.#{service_name}.entrypoints=https",
109
- "traefik.http.routers.#{service_name}.tls=true",
110
- "traefik.http.routers.#{service_name}.tls.certresolver=le"
111
100
  ]
101
+
102
+ if opts[:traefik_tls]
103
+ service[:deploy][:labels] += [
104
+ "traefik.http.routers.#{service_name}.entrypoints=http",
105
+ "traefik.http.routers.#{service_name}.middlewares=service_stack-https-redirect",
106
+ "traefik.http.routers.#{service_name}.entrypoints=https",
107
+ "traefik.http.routers.#{service_name}.tls=true",
108
+ "traefik.http.routers.#{service_name}.tls.certresolver=le"
109
+ ]
110
+ end
111
+
112
+ if @ingress[name][:host]
113
+ service[:deploy][:labels] << "traefik.http.routers.#{service_name}.rule=HostRegexp(`{name:#{nginx_host2regexp @ingress[name][:host]}}`)"
114
+ end
115
+ if @ingress[name][:rule]
116
+ service[:deploy][:labels] << "traefik.http.routers.#{service_name}.rule=#{@ingress[name][:rule]}"
117
+ end
112
118
  end
113
119
 
114
120
  service[:deploy].merge! @deploy[name] if @deploy[name]
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.0.17'
3
+ VERSION = '0.0.18'
4
4
  end
5
5
  end
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.17
4
+ version: 0.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-15 00:00:00.000000000 Z
11
+ date: 2022-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake