harbr 0.0.49 → 0.0.50

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: 46fd623e080334e1798b6b9a6215d48c4027b37d6049878595a30ea7575e9df1
4
- data.tar.gz: 9cda2ef4490a7c607fa195ac59d45597f70d0cbd34ce2399e7cf1b659c142079
3
+ metadata.gz: e9bd0294a6e51db376e62071af8704780ab759253f3ddd45a848d1ede9ebd7a6
4
+ data.tar.gz: 6d05ed2cf9bb7c940d76ffaa9ae7e171b43543c6182352e77d9badeadeebbacc
5
5
  SHA512:
6
- metadata.gz: fce2b5ced96f4d4510e183471dcdf0bae0c0511aa3e1b4e0b1f17820fbb28f348360877a106a61c91b09668c1acf40314270d7541b5d3f5ca1a85b75978dff12
7
- data.tar.gz: 1a95866bf9654fc98b620073bc86977d66bfbee15d00d3984745be6c6bb7b1bd14403cd13969cccb65b0ad14632517aaa1dc030d240ebe6d74329b7eb0e0fd98
6
+ metadata.gz: 792e58a5adf838c0555ba740c6580b4faeeefe06c3307bd7681c720ddacfaddf4977beb448cdf0db76bd0721eb7d9a34e82cef484039078e2b58f48937c9ede1
7
+ data.tar.gz: cb2c1604ffc55501dd2253f2788fa691fbd0dbb15dcd926789997bdfbef4d56e5211aef4f072e8d0d134ce8b746181667db3fa44d57af5931aa7563f4b654727
data/exe/harbr CHANGED
@@ -74,6 +74,60 @@ class HarbrCLI < Thor
74
74
  puts "done waiting"
75
75
  Harbr::Job.perform_async(container, version)
76
76
  end
77
+
78
+ def create_traefik_config(containers)
79
+ config = {
80
+ "http" => {
81
+ "routers" => {
82
+ "traefik-dashboard" => {
83
+ "rule" => "Host(`traefik.harbr.zero2one.ee`)",
84
+ "service" => "api@internal"
85
+ }
86
+ },
87
+ "services" => {}
88
+ }
89
+ }
90
+
91
+ containers.each do |container|
92
+ container.ip = "127.0.0.1"
93
+
94
+ config["http"]["routers"]["#{container.name}-router"] = {
95
+ "rule" => "Host(`#{container.host_header}`)",
96
+ "service" => "#{container.name}-service"
97
+ }
98
+ config["http"]["services"]["#{container.name}-service"] = {
99
+ "loadBalancer" => {
100
+ "servers" => [{"url" => "http://#{container.ip}:#{container.port}"}]
101
+ }
102
+ }
103
+ end
104
+
105
+ File.write("/etc/traefik/harbr.toml", TomlRB.dump(config))
106
+ puts "Traefik configuration written to /etc/traefik/harbr.toml"
107
+ end
108
+
109
+ end
110
+
111
+ desc "destroy", "Destroy a container and remove all traces"
112
+ def destroy(container_name)
113
+
114
+ puts "Destroying container: #{container_name}"
115
+
116
+ `sv stop #{container_name}`
117
+
118
+ `rm -rf /var/harbr/#{container_name}`
119
+ `rm -rf /etc/service/#{container_name}`
120
+ `rm -rf /etc/sv/harbr/#{container_name}`
121
+ `rm -rf /var/log/harbr/#{container_name}`
122
+
123
+
124
+ container_repo = Harbr::Container::Repository.new
125
+ container = container_repo.find_name(container_name)
126
+ container_repo.delete(container)
127
+
128
+ create_traefik_config(container_repo.all)
129
+
130
+ puts "Container #{container_name} destroyed successfully."
77
131
  end
78
132
 
79
133
  desc "setup", "Set up Harbr environment"
@@ -7,8 +7,9 @@ module Harbr
7
7
  def find_by_header(host_header)
8
8
  all.find { |container| container.host_header.downcase == host_header.downcase }
9
9
  end
10
+ def find_by_name(name)
11
+ all.find { |container| container.name.downcase == name.downcase }
12
+ end
10
13
  end
11
-
12
-
13
14
  end
14
15
  end
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.49"
4
+ VERSION = "0.0.50"
5
5
  end
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.49
4
+ version: 0.0.50
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delaney Kuldvee Burke