harbr 0.0.3 → 0.0.4
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/.data/development/Harbr::Container.dir +0 -0
- data/.data/development/Harbr::Container.pag +0 -0
- data/exe/harbr +36 -0
- data/lib/examples/harbr.toml +43 -0
- data/lib/harbr/version.rb +1 -1
- data/lib/harbr.rb +7 -2
- metadata +33 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 757a47e061cb1c14cf31efdd949df3536a9671b5dbe9673ba5479e89e4ec1b8d
|
|
4
|
+
data.tar.gz: 6d3e93523572bf11b506ed803869b2494b83d1abb26d1db57232dd24e18c2dd8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3c840f224d4dca5540997f1a5dc4bd18b0eb00cb29af201a9fe161ab4ab593ab6b19d2b8873a469d9a38de2fa21d3b584e528894a4da69fe0858f4f9fb90b03a
|
|
7
|
+
data.tar.gz: 19e91fef482a15854c26020429b0a2e2c508394773807b84d26b4da88eacbc431b807d3572150e4bbda118a3912ca91671afa7cb97e1e120783c48a982fe3ef0
|
|
File without changes
|
|
Binary file
|
data/exe/harbr
CHANGED
|
@@ -1,12 +1,41 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
require 'thor'
|
|
3
3
|
require 'listen'
|
|
4
|
+
require 'dddr'
|
|
5
|
+
require 'harbr'
|
|
6
|
+
require 'terminal-table'
|
|
4
7
|
|
|
5
8
|
class HarbrCLI < Thor
|
|
6
9
|
DEFAULT_DIRECTORY = '/var/harbr'
|
|
10
|
+
DEFAULT_DIRECTORY_DATA_DIR = "#{DEFAULT_DIRECTORY}/.data"
|
|
7
11
|
@@listener = nil
|
|
8
12
|
|
|
13
|
+
Dddr.configure do |config|
|
|
14
|
+
config.data_dir = DEFAULT_DIRECTORY_DATA_DIR
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
|
|
9
18
|
no_commands do
|
|
19
|
+
|
|
20
|
+
def display_containers_table(containers)
|
|
21
|
+
return puts "No containers available." if containers.empty?
|
|
22
|
+
|
|
23
|
+
# Define headers based on Container attributes
|
|
24
|
+
headers = ['Name', 'Host Header', 'IP', 'Port']
|
|
25
|
+
|
|
26
|
+
rows = containers.map do |container|
|
|
27
|
+
[container.name, container.host_header, container.ip, container.port]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
table = ::Terminal::Table.new(headings: headers, rows: rows)
|
|
31
|
+
puts ""
|
|
32
|
+
puts "Harbr Containers"
|
|
33
|
+
puts ""
|
|
34
|
+
puts table
|
|
35
|
+
puts ""
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
|
|
10
39
|
def check_and_create_directory(path)
|
|
11
40
|
unless Dir.exist?(path)
|
|
12
41
|
puts "Creating directory: #{path}"
|
|
@@ -89,6 +118,13 @@ class HarbrCLI < Thor
|
|
|
89
118
|
puts "Harbr is not running or already active."
|
|
90
119
|
end
|
|
91
120
|
end
|
|
121
|
+
|
|
122
|
+
desc "containers", "show all containers"
|
|
123
|
+
def containers
|
|
124
|
+
container_repo = Harbr::Container::Repository.new
|
|
125
|
+
display_containers_table(container_repo.all)
|
|
126
|
+
end
|
|
127
|
+
|
|
92
128
|
end
|
|
93
129
|
|
|
94
130
|
HarbrCLI.start(ARGV)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Define HTTP routers
|
|
2
|
+
[http.routers]
|
|
3
|
+
[http.routers.traefik-dashboard]
|
|
4
|
+
rule = "Host(`traefik.harbr.zero2one.ee`)"
|
|
5
|
+
service = "api@internal"
|
|
6
|
+
entryPoints = ["http"]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# Define the router for the Traefik Dashboard and API
|
|
10
|
+
[http.routers.traefik-dashboard]
|
|
11
|
+
rule = "Host(`traefik.harbr.zero2one.ee`)"
|
|
12
|
+
service = "api@internal"
|
|
13
|
+
entryPoints = ["http"]
|
|
14
|
+
|
|
15
|
+
[http.routers.tallinn-router]
|
|
16
|
+
rule = "Host(`tallinn.laki.zero2one.ee`)"
|
|
17
|
+
service = "tallinn-service"
|
|
18
|
+
|
|
19
|
+
[http.routers.vidtreon-router]
|
|
20
|
+
rule = "Host(`vidtreon.harbr.zero2one.ee`)"
|
|
21
|
+
service = "vidtreon-service"
|
|
22
|
+
|
|
23
|
+
[http.routers.sild-router]
|
|
24
|
+
rule = "Host(`sild.harbr.zero2one.ee`)"
|
|
25
|
+
service = "sild-service"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
[http.services]
|
|
30
|
+
[http.services.tallinn-service]
|
|
31
|
+
[http.services.tallinn-service.loadBalancer]
|
|
32
|
+
[[http.services.tallinn-service.loadBalancer.servers]]
|
|
33
|
+
url = "http://10.80.172.9:80"
|
|
34
|
+
|
|
35
|
+
[http.services.vidtreon-service]
|
|
36
|
+
[http.services.vidtreon-service.loadBalancer]
|
|
37
|
+
[[http.services.vidtreon-service.loadBalancer.servers]]
|
|
38
|
+
url = "http://127.0.0.1:9292"
|
|
39
|
+
|
|
40
|
+
[http.services.sild-service]
|
|
41
|
+
[http.services.sild-service.loadBalancer]
|
|
42
|
+
[[http.services.sild-service.loadBalancer.servers]]
|
|
43
|
+
url = "http://127.0.0.1:9393"
|
data/lib/harbr/version.rb
CHANGED
data/lib/harbr.rb
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
2
|
require_relative "harbr/version"
|
|
3
|
+
require 'dddr'
|
|
4
4
|
|
|
5
5
|
module Harbr
|
|
6
6
|
class Error < StandardError; end
|
|
7
|
-
|
|
7
|
+
class Container
|
|
8
|
+
include Dddr::Entity
|
|
9
|
+
attr_accessor :name, :host_header, :ip, :port
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Your code goes here...
|
|
8
13
|
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.
|
|
4
|
+
version: 0.0.4
|
|
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-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: listen
|
|
@@ -38,6 +38,34 @@ dependencies:
|
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '1.3'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: dddr
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: 1.0.3
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: 1.0.3
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: terminal-table
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - '='
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: 3.0.2
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - '='
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 3.0.2
|
|
41
69
|
description: Harbr is a versatile tool designed to streamline the deployment, management,
|
|
42
70
|
and scaling of Rack-based applications. It integrates with version control and process
|
|
43
71
|
supervision systems to ensure smooth and consistent application delivery.
|
|
@@ -48,6 +76,8 @@ executables:
|
|
|
48
76
|
extensions: []
|
|
49
77
|
extra_rdoc_files: []
|
|
50
78
|
files:
|
|
79
|
+
- ".data/development/Harbr::Container.dir"
|
|
80
|
+
- ".data/development/Harbr::Container.pag"
|
|
51
81
|
- ".rspec"
|
|
52
82
|
- ".standard.yml"
|
|
53
83
|
- CHANGELOG.md
|
|
@@ -57,6 +87,7 @@ files:
|
|
|
57
87
|
- Rakefile
|
|
58
88
|
- exe/harbr
|
|
59
89
|
- hero.png
|
|
90
|
+
- lib/examples/harbr.toml
|
|
60
91
|
- lib/harbr.rb
|
|
61
92
|
- lib/harbr/version.rb
|
|
62
93
|
- sig/harbr.rbs
|