StackStorm HA in Kubernetes βeta – Community update

Oct 10, 2018
By Warren Van Winckel and Eugen C.

A couple weeks ago, we released the Helm chart and docker images so you could install StackStorm Enterprise HA cluster in Kubernetes.

Today, we’re glad to announce that the Community free and open source edition of StackStorm HA is now available, too! With this update we are excited to bring Kubernetes powers to the broader community and strive for greater adoption in production with better safety for all important operations you delegate to StackStorm automation engine.

Combined logo

To install StackStorm cluster:

helm repo add stackstorm https://helm.stackstorm.com
helm install stackstorm/stackstorm-ha

This will setup a fleet of more than 30 pods and ensure that every StackStorm component and their dependencies like database, message bus or distributed coordination backend have enough redundancy to guarantee higher availability.

For those with an enterprise license, just enable it in Helm values. helm upgrade will upgrade your cluster from Community to Enterprise edition with no loss of data or uptime, see instructions.

If you want to dig deeper configuring StackStorm HA in K8s with Helm – we recommend to check out documentation and latest development at github.com/stackstorm/stackstorm-ha.

We also updated the StackStorm Installation documentation at https://docs.stackstorm.com/install/k8s_ha.html

New Community Dockerfiles

The community docker images used by the stackstorm-ha helm charts are found at github.com/stackstorm/st2-dockerfiles. Today, we deprecate runtime/kubernetes-1ppc in st2-docker repository. It will be removed early next year in time for the StackStorm v3.1 release. The new Dockerfiles are based on Ubuntu Xenial and define granular resources like ports, volumes, users per container. This ensures better security and makes it very clear what each container can access. We aim to follow 12 factor app, docker dev and dockerfile best practices. For example, containers are ephemeral and immutable, they’re smaller in size, everything is logged to stdout/stderr and we use one service per container to strive the production-level expectations.

Future Plans

We will remove the beta label, and announce General Availability in the next few months. We want to get some real-world user feedback first. Let us know if you hit any problems! Near term, we plan to work on K8s Ingress Controller (#6), Prometheus Metrics (#23), Liveness/Readiness probes for st2 services to ensure correct K8s failover, st2sensorcontainer partitioning/load distribution, as well as various security enhancements, features and production requirements. A list of all documented issues is found at StackStorm/stackstorm-ha/issues and StackStorm/st2-dockerfiles/issues.

As this new deployment method is in beta state and further development is in progress, we ask you to try it and influence future work by providing your valuable feedback. You can do this via ideas, bug reports, feature or pull requests in StackStorm/stackstorm-ha and/or StackStorm/st2-dockerfiles. Also by asking questions at forum.stackstorm.com or in our Slack #docker channel. As always, you can write us an email.