harbr 0.2.0 → 0.2.2

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: 5adbfdc0a5332cd095e391559e38619ccb5c0a0adab323a717b11febe123f077
4
- data.tar.gz: '08f3307a88568022dcbc13b632e17b31338129b0196cba7b6b40068787eecbf3'
3
+ metadata.gz: 78fa473f8be877a6b04976d3b3642a6bbf87e7c1a172fc507db1cab6b1e12285
4
+ data.tar.gz: 3fea9186e4dc9638f6c96f9a8c69e45b98854a58803e064ed9014b4aaa452f63
5
5
  SHA512:
6
- metadata.gz: ffa72b4e4db7cbb63292bae57308954101ccb2203a47b7f26a7b536831ccca62dbda37cc85282a696def31312019681e497f00fa371d2f7e518d1fad6e6098a8
7
- data.tar.gz: 02dfd86ba9d6ccc4d6d44a06e1bdccb0816edafbbc5cc7cefd8edf9b919261fcfa2f0db9bf1b89a10b543eb0a34c2e380798a75b46e4c60f15198e63419a3c92
6
+ metadata.gz: a36901e43e4ad639993e14691a2abac6a50d6d31d88b4d3e817b701a8a3f46f6300b311e5d42ec6e84369a28c655a587528f7967b65f8fcb3a4fc494304df0ee
7
+ data.tar.gz: fbdd20b24e79d60b64520639ae31f48e4d92fb1fc6232beefeec811a2297f6e8c5afefc6dd77ce5beedb277a3c62e0ed9ec04a55cc1552079450d66cf97456f7
data/exe/harbr CHANGED
@@ -48,6 +48,39 @@ class HarbrCLI < Thor
48
48
  system("sudo apt install #{package}") or raise "Failed to install #{package}"
49
49
  end
50
50
 
51
+ def create_traefik_config(containers)
52
+ config = {
53
+ "http" => {
54
+ "routers" => {},
55
+ "services" => {}
56
+ }
57
+ }
58
+
59
+ containers.each do |container|
60
+ container.ip = "127.0.0.1"
61
+ name = container.name.tr(".", "-")
62
+
63
+ router_key = "#{name}-router-secure"
64
+ config["http"]["routers"][router_key] = {
65
+ "rule" => "Host(`#{container.host_header}`)",
66
+ "service" => "#{name}-service",
67
+ "entryPoints" => ["https"],
68
+ "tls" => {
69
+ "certResolver" => "myresolver"
70
+ }
71
+ }
72
+
73
+ config["http"]["services"]["#{name}-service"] = {
74
+ "loadBalancer" => {
75
+ "servers" => [{"url" => "http://#{container.ip}:#{container.port}"}]
76
+ }
77
+ }
78
+ end
79
+
80
+ File.write("/etc/traefik/harbr.toml", TomlRB.dump(config))
81
+ puts "Traefik configuration written to /etc/traefik/harbr.toml"
82
+ end
83
+
51
84
  end
52
85
 
53
86
  desc "destroy", "Destroy a container and remove all traces"
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.2.0"
4
+ VERSION = "0.2.2"
5
5
  end
data/lib/harbr.rb CHANGED
@@ -16,6 +16,11 @@ require_relative "harbr/job"
16
16
  module Harbr
17
17
  DEFAULT_DIRECTORY = "/var/harbr/containers"
18
18
  DEFAULT_DIRECTORY_DATA_DIR = "#{DEFAULT_DIRECTORY}/.data"
19
+
20
+ Dddr.configure do |config|
21
+ config.data_dir = DEFAULT_DIRECTORY_DATA_DIR
22
+ end
23
+
19
24
  class Error < StandardError; end
20
25
 
21
26
  def self.send_notification(subject, body)
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.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delaney Kuldvee Burke