Class: OpenC3::TraefikModel

Inherits:
Object show all
Defined in:
lib/openc3/models/traefik_model.rb

Class Method Summary collapse

Class Method Details

.register_route(microservice_name:, port:, prefix:, priority: 20) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/openc3/models/traefik_model.rb', line 23

def self.register_route(microservice_name:, port:, prefix:, priority: 20)
  prefix = '/' + prefix unless prefix[0] == '/'
  if ENV['KUBERNETES_SERVICE_HOST']
    url = "http://#{microservice_name.gsub('__', '-')}:#{port}"
  else
    url = "http://openc3-operator:#{port}"
  end
  service_name = microservice_name
  router_name = microservice_name
  Store.set("traefik/http/services/#{service_name}/loadbalancer/servers/0/url", url)
  Store.set("traefik/http/routers/#{router_name}/service", service_name)
  Store.set("traefik/http/routers/#{router_name}/priority", priority)
  Store.set("traefik/http/routers/#{router_name}/rule", "PathPrefix(`#{prefix}`)")
end

.unregister_route(microservice_name:) ⇒ Object



38
39
40
41
42
43
44
45
# File 'lib/openc3/models/traefik_model.rb', line 38

def self.unregister_route(microservice_name:)
  service_name = microservice_name
  router_name = microservice_name
  Store.del("traefik/http/routers/#{router_name}/rule")
  Store.del("traefik/http/routers/#{router_name}/priority")
  Store.del("traefik/http/routers/#{router_name}/service")
  Store.del("traefik/http/services/#{service_name}/loadbalancer/servers/0/url")
end