harbr 0.0.73 → 0.0.75
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/harbr/next/job.rb +46 -26
- data/lib/harbr/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: 24c9a6c440b96bf2df8658095ee67d71f257f8d2ce1db94dbec1c0e6079a2c61
|
4
|
+
data.tar.gz: 535eb68733f63f8bb561cc2b84365f786dd6395a00d824b76907541a0226c673
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 102dca943b77b5d715e2ae6cbe5b9eca8a5fda8b2657b477cce6e38c3b0660c0aa555e68842443262e6dd80b481d9c4efaed4bf6281ed7923025497dda639a0f
|
7
|
+
data.tar.gz: dbd8193d07ff643901d0c91dde8c1f5b7fca9627a96398082770c1a3d47fe35ca6ed83fb86d3ff73a3fc65a3d781fc45bd7fc89426a31a45dc52ed0a47e884b8
|
data/lib/harbr/next/job.rb
CHANGED
@@ -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
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
37
|
+
'services' => {}
|
23
38
|
}
|
24
39
|
}
|
40
|
+
end
|
25
41
|
|
26
|
-
|
27
|
-
|
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
|
-
|
30
|
-
|
31
|
-
|
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
|
-
|
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
|
|
@@ -88,12 +106,8 @@ module Harbr
|
|
88
106
|
port = `port assign next.#{manifest.port}`.strip
|
89
107
|
puts "Port assigned: #{port}"
|
90
108
|
|
91
|
-
#puts `lsof -i :#{port} | awk 'NR!=1 {print $2}' | xargs kill -9`
|
92
|
-
|
93
109
|
`rm -rf /etc/sv/harbr/#{manifest.name}/next`
|
94
|
-
|
95
|
-
puts "Linked to: /etc/sv/harbr/#{manifest.name}/next"
|
96
|
-
|
110
|
+
|
97
111
|
create_a_service(manifest.name, port)
|
98
112
|
|
99
113
|
containers = Container::Repository.new
|
@@ -116,6 +130,12 @@ module Harbr
|
|
116
130
|
system("cd /var/harbr/#{manifest.name}/next && bundle install")
|
117
131
|
system("sv restart next.#{manifest.name}")
|
118
132
|
puts "Started container: next.#{manifest.name}"
|
133
|
+
|
134
|
+
system("ln -s /var/harbr/#{manifest.name}/versions/#{manifest.version}/ /etc/sv/harbr/#{manifest.name}/next")
|
135
|
+
puts "Linked to: /etc/sv/harbr/#{manifest.name}/next"
|
136
|
+
|
137
|
+
|
138
|
+
|
119
139
|
create_traefik_config(containers.all)
|
120
140
|
end
|
121
141
|
|
data/lib/harbr/version.rb
CHANGED
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.
|
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
|
+
date: 2023-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: listen
|