harbr 0.0.26 → 0.0.27

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: 5eb9a36d658e6c4715dc48f90ffa37d0071fa6d7ab428bc75d65265682967781
4
- data.tar.gz: 0aee4e5465e2b316d1b7f59a208fca76cd7371f4bdad5c556af1cc3e8fc05b70
3
+ metadata.gz: 7a300cf909bcba9f3fc2045d7054d35d5752dc401d31b69e5f13eabecdf892ca
4
+ data.tar.gz: 17bad3c9f4a400ce18aada4915fd0777728b4357c05290271494f3fdb71dc7a0
5
5
  SHA512:
6
- metadata.gz: 9fd1075768db252ca5bc6709bf3a381cff6318f0ddc2154d2bfae56215932f0c13addfd264897571d0d066658c67b2761cf2054402b0a883171835a1f6c4e54c
7
- data.tar.gz: f984d372db4321ed1ccdf1f96579eecda24e47a4df24470ae7bc3005ca656055bea943ee1a234263553ea7a932d63e738ff1ba26dc4de5772120b6af27258e6f
6
+ metadata.gz: 90db528f026396ec5dfee0e8c5a4909d30898efe8ec7832fbdcb07918ba676a48879d087d745bcbc2efdc60d925a25ef5befbebc873fd340d2d281afff91aefd
7
+ data.tar.gz: 66898f08948196327f89b5fdcc082772979a58f075d4baaca22c2f9612b80efc7ec31a89689cfcadedc8104bdcaba9698531fc9c8b1d4e5ffaa719d76c000eef
data/exe/harbr CHANGED
@@ -5,6 +5,8 @@ require "harbr"
5
5
  require "sucker_punch"
6
6
  require "terminal-table"
7
7
  require "yaml"
8
+ require 'toml-rb'
9
+ require "fileutils"
8
10
  require "ostruct"
9
11
 
10
12
  class HarbrCLI < Thor
@@ -15,7 +17,6 @@ class HarbrCLI < Thor
15
17
  end
16
18
 
17
19
  no_commands do
18
-
19
20
  def load_manifest(container, version)
20
21
  manifest_path = "/var/harbr/#{container}/versions/#{version}/config/manifest.yml"
21
22
  if File.exist?(manifest_path)
@@ -0,0 +1,15 @@
1
+ # Define HTTP routers
2
+ [http.routers]
3
+ [http.routers.traefik-dashboard]
4
+ rule = "Host(`traefik.harbr.zero2one.ee`)"
5
+ service = "api@internal"
6
+
7
+ [http.routers.sild-router]
8
+ rule = "Host(`sild.harbr.zero2one.ee`)"
9
+ service = "sild-service"
10
+
11
+ [http.services]
12
+ [http.services.tallinn-service]
13
+ [http.services.tallinn-service.loadBalancer]
14
+ [[http.services.tallinn-service.loadBalancer.servers]]
15
+ url = "http://127.0.0.1:80"
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.26"
4
+ VERSION = "0.0.27"
5
5
  end
data/lib/harbr.rb CHANGED
@@ -3,7 +3,8 @@
3
3
  require_relative "harbr/version"
4
4
  require "dddr"
5
5
  require "sucker_punch"
6
- require "fileutils"
6
+
7
+ require 'toml-rb'
7
8
 
8
9
  module Harbr
9
10
 
@@ -27,6 +28,38 @@ module Harbr
27
28
  end
28
29
 
29
30
 
31
+ def create_traefik_config(containers)
32
+ config = {
33
+ "http" => {
34
+ "routers" => {
35
+ "traefik-dashboard" => {
36
+ "rule" => "Host(`traefik.harbr.zero2one.ee`)",
37
+ "service" => "api@internal"
38
+ }
39
+ },
40
+ "services" => {}
41
+ }
42
+ }
43
+
44
+ containers.each do |container|
45
+
46
+ container.ip = "127.0.0.1"
47
+
48
+ config["http"]["routers"]["#{container.name}-router"] = {
49
+ "rule" => "Host(`#{container.host_header}`)",
50
+ "service" => "#{container.name}-service"
51
+ }
52
+ config["http"]["services"]["#{container.name}-service"] = {
53
+ "loadBalancer" => {
54
+ "servers" => [{ "url" => "http://#{container.ip}:#{container.port}" }]
55
+ }
56
+ }
57
+ end
58
+
59
+ File.write('/etc/traefik/harbr.toml', TomlRB.dump(config))
60
+ puts "Traefik configuration written to /etc/traefik/harbr.toml"
61
+ end
62
+
30
63
  def create_run_script(container_name, port)
31
64
  service_dir = "/etc/sv/harbr/#{container_name}"
32
65
  if File.directory?(service_dir)
@@ -109,7 +142,8 @@ module Harbr
109
142
  container.port = port.number
110
143
  containers.add(container) unless containers.find_by_header(manifest.host)
111
144
 
112
- puts "Started container: #{manifest.name}"
145
+ create_traefik_config(containers.all)
146
+
113
147
 
114
148
  end
115
149
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: harbr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.26
4
+ version: 0.0.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delaney Kuldvee Burke
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: toml-rb
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 2.2.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 2.2.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: dddr
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -102,6 +116,7 @@ files:
102
116
  - exe/harbr
103
117
  - hero.png
104
118
  - lib/examples/harbr.toml
119
+ - lib/examples/template.toml
105
120
  - lib/harbr.rb
106
121
  - lib/harbr/version.rb
107
122
  - sig/harbr.rbs