Configuration

Orchestration is configured using two different methods.

  1. Config options
  2. Entrypoints

Config options

system_log_address

Passed to executor which will run system log worker

tasks_address

Passed to executor which will run tasks worker

scheduler_address

Passed to executor which will run scheduler worker

executor

Driver name should be registered in entrypoints, see Executor namespace

tasks_driver

Driver name should be registered in appropriate entrypoints (see Worker driver namespaces)

scheduler_driver

Driver name should be registered in appropriate entrypoints (see Worker driver namespaces)

system_log_driver

Driver name should be registered in appropriate entrypoints (see Worker driver namespaces)

runner

Driver name should be registered in entrypoints (see Runner namespace)

Entrypoints

Executor namespace

Note

solar.orchestration.executors

One specified in configuration will be used.

Extensions namespace

Note

solar.orchestration.extensions

Using driver namespaces for each worker - loads all workers.

Worker driver namespaces

Note

solar.orchestration.drivers.tasks
solar.orchestration.drivers.scheduler
solar.orchestration.drivers.system_log

Only one driver can be selected from each namespace, see driver options in config.

Constructor namespace

Note

solar.orchestration.constructors

Loads callables from this namespace and executes hooks connected to those namespaces.

Constructor hooks namespaces

Note

solar.orchestration.hooks.tasks.construct
solar.orchestration.hooks.system_log.construct
solar.orchestration.hooks.scheduler.construct

All callables in each hook will be loaded and executed before spawning executor with instance of worker. Currently all subscriptions are done in this hooks.

Runner namespace

Note

solar.orchestration.runners

Runner should be selected in solar config. Runner will be executed as a last step in solar-worker main function.