Coordination
Coordination backend is required to support workflows with multiple branches or tasks with items and actions with concurrency policies defined.
StackStorm utilizes the OpenStack Tooz
library for communicating with the coordination backend.
The coordination backend must support the Locking
functionality as defined by the Tooz
interface. Please refrence the OpenStack Tooz compatability page
for more information what interfaces are implemented by various backends.
The following is a list of backends that can be configured for the coordination service. For the full list of the supported backends and how to configure them, please visit OpenStack Tooz documentation.
Redis
Zookeeper
consul
etcd
file (for testing when all the services are running on a single host)
The configuration of the coordination service is done in the coordination
section
of /etc/st2/st2.conf
. The following are configuration examples for Redis and Zookeeper.
Redis:
[coordination]
url = redis://:password@host:port
ZooKeeper:
[coordination]
url = kazoo://username:password@host:port
Some of these coordination backends also require corresponding client libraries to be installed in StackStorm virtualenv. Since StackStorm v3.5 the redis client libraries are included with the st2 package, but for all other versions or coordination backends, we do not ship these libraries by default. As an example, to install the client library in StackStorm virtualenv, run:
sudo su
# Example when using consul backend
/opt/stackstorm/st2/bin/pip install consul