Class: Scaltainer::Runner
- Inherits:
-
Object
- Object
- Scaltainer::Runner
- Defined in:
- lib/scaltainer/runner.rb
Instance Method Summary collapse
-
#initialize(configfile, statefile, logger, wait, orchestrator, pushgateway) ⇒ Runner
constructor
A new instance of Runner.
Constructor Details
#initialize(configfile, statefile, logger, wait, orchestrator, pushgateway) ⇒ Runner
Returns a new instance of Runner.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/scaltainer/runner.rb', line 7 def initialize(configfile, statefile, logger, wait, orchestrator, pushgateway) @orchestrator = orchestrator @logger = logger @default_service_config = { "min" => 0, "upscale_quantity" => 1, "downscale_quantity" => 1, "upscale_sensitivity" => 1, "downscale_sensitivity" => 1 } @logger.debug "Scaltainer initialized with configuration file: #{configfile}, and state file: #{statefile}" config = YAML.load_file configfile Docker.logger = @logger if orchestrator == :swarm state = get_state(statefile) || {} endpoint = config["endpoint"] service_type_web = ServiceTypeWeb.new(endpoint) service_type_worker = ServiceTypeWorker.new(endpoint) register_pushgateway(pushgateway) if pushgateway namespace = config["namespace"] || config["stack_name"] loop do run config, state, service_type_web, service_type_worker, namespace save_state statefile, state sync_pushgateway(namespace, state) if pushgateway sleep wait break if wait == 0 end end |