harbr 0.0.74 → 0.0.75

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: acbd1dcb0669bb47ff867e9404ddaeae8fc62e92527c01f77ddc0b459bfd0ac0
4
- data.tar.gz: 5214fb1862544cab9857ab3441dae8ff970422a4cff633d388dafa19875f0182
3
+ metadata.gz: 24c9a6c440b96bf2df8658095ee67d71f257f8d2ce1db94dbec1c0e6079a2c61
4
+ data.tar.gz: 535eb68733f63f8bb561cc2b84365f786dd6395a00d824b76907541a0226c673
5
5
  SHA512:
6
- metadata.gz: 0bc3031bb1097747d9cc676522de70650a4d27bafa274a14fe7c572d43fafc888fa49b9768ba8c4d4ad37a8c739de1d12a3620f5518c398d3fa9a0952f600380
7
- data.tar.gz: bdbb1379966bf4df77cc845aa3a494056ce3165fe42425be21902ab3f354b52a317d5fea2539d3fa66a9c0aeabbd04356fc26cd00f9336f8c3186b40ace00b14
6
+ metadata.gz: 102dca943b77b5d715e2ae6cbe5b9eca8a5fda8b2657b477cce6e38c3b0660c0aa555e68842443262e6dd80b481d9c4efaed4bf6281ed7923025497dda639a0f
7
+ data.tar.gz: dbd8193d07ff643901d0c91dde8c1f5b7fca9627a96398082770c1a3d47fe35ca6ed83fb86d3ff73a3fc65a3d781fc45bd7fc89426a31a45dc52ed0a47e884b8
@@ -10,37 +10,55 @@ module Harbr
10
10
  OpenStruct.new(manifest_data)
11
11
  end
12
12
 
13
+
13
14
  def create_traefik_config(containers)
14
- config = {
15
- "http" => {
16
- "routers" => {
17
- "traefik-dashboard" => {
18
- "rule" => "Host(`traefik.harbr.zero2one.ee`)",
19
- "service" => "api@internal"
15
+ config = initialize_config
16
+
17
+ containers.each do |container|
18
+ container.ip = '127.0.0.1'
19
+ add_router_to_config(config, container)
20
+ add_service_to_config(config, container)
21
+ end
22
+
23
+ write_config_to_file(config)
24
+ end
25
+
26
+ private
27
+
28
+ def initialize_config
29
+ {
30
+ 'http' => {
31
+ 'routers' => {
32
+ 'traefik-dashboard' => {
33
+ 'rule' => 'Host(`traefik.harbr.zero2one.ee`)',
34
+ 'service' => 'api@internal'
20
35
  }
21
36
  },
22
- "services" => {}
37
+ 'services' => {}
23
38
  }
24
39
  }
40
+ end
25
41
 
26
- containers.each do |container|
27
- container.ip = "127.0.0.1"
42
+ def add_router_to_config(config, container)
43
+ config['http']['routers']["#{container.name}-router"] = {
44
+ 'rule' => "Host(`#{container.host_header}`)",
45
+ 'service' => "#{container.name}-service"
46
+ }
47
+ end
28
48
 
29
- config["http"]["routers"]["#{container.name}-router"] = {
30
- "rule" => "Host(`#{container.host_header}`)",
31
- "service" => "#{container.name}-service"
32
- }
33
- config["http"]["services"]["#{container.name}-service"] = {
34
- "loadBalancer" => {
35
- "servers" => [{"url" => "http://#{container.ip}:#{container.port}"}]
36
- }
49
+ def add_service_to_config(config, container)
50
+ config['http']['services']["#{container.name}-service"] = {
51
+ 'loadBalancer' => {
52
+ 'servers' => [{'url' => "http://#{container.ip}:#{container.port}"}]
37
53
  }
38
- end
39
-
40
- File.write("/etc/traefik/harbr.toml", TomlRB.dump(config))
41
- puts "Traefik configuration written to /etc/traefik/harbr.toml"
54
+ }
42
55
  end
43
56
 
57
+ def write_config_to_file(config)
58
+ File.write('/etc/traefik/harbr.toml', TomlRB.dump(config))
59
+ puts 'Traefik configuration written to /etc/traefik/harbr.toml'
60
+ end
61
+
44
62
  def create_run_script(container_name, port)
45
63
  service_dir = "/etc/sv/harbr/#{container_name}/next"
46
64
 
@@ -116,10 +134,9 @@ module Harbr
116
134
  system("ln -s /var/harbr/#{manifest.name}/versions/#{manifest.version}/ /etc/sv/harbr/#{manifest.name}/next")
117
135
  puts "Linked to: /etc/sv/harbr/#{manifest.name}/next"
118
136
 
119
- create_traefik_config(containers.all)
120
-
121
- puts `lsof -i :#{port} | awk 'NR!=1 {print $2}' | xargs kill -9`
122
137
 
138
+
139
+ create_traefik_config(containers.all)
123
140
  end
124
141
 
125
142
  def perform(container, version)
data/lib/harbr/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Harbr
4
- VERSION = "0.0.74"
4
+ VERSION = "0.0.75"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: harbr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.74
4
+ version: 0.0.75
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delaney Kuldvee Burke
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-11 00:00:00.000000000 Z
11
+ date: 2023-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: listen