Class: OpenC3::TraefikModel
- Defined in:
- lib/openc3/models/traefik_model.rb
Class Method Summary collapse
- .register_route(microservice_name:, port:, prefix:, priority: 20) ⇒ Object
- .unregister_route(microservice_name:) ⇒ Object
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 |