StackStorm v3.3.0 Released

Oct 22, 2020

by Nick Maludy (@nmaludy) and @blag

The StackStorm project is pleased to announce that the latest version of StackStorm, v3.3.0, is now publicly available! It has been approximately 5 months since our v3.2.0 release and we are releasing a new version containing important features and bug fixes that move the project forward.

Goals

With this release we’re driving toward several project goals on the StackStorm roadmap. Each of the goals in this release is focused on providing better maintainability and ease of long-term support for the project. Reducing maintenance burden on the development team allows us to put more effort into features.

So, what changed?

Dropped Support for RHEL6

Red Hat Enterprise Linux/CentOS 6 is reaching the end of its maintenance lifecycle on November 20, 2020. This OS also has some oddities and legacy baggage that makes it a drag on the team with lots of weird conditionals and edge cases. Back in the StackStorm v3.2.0 release announcement we warned users of our plans to deprecate RHEL/CentOS 6 and today we’re happy to announce that we’ve dropped support for RHEL/CentOS 6! Good news is, we support both RHEL/CentOS 7 and 8.

Dropped Support for HipChat in ChatOps

Atlassian discontinued HipChat Cloud back in Febuary 2019, and now HipChat Server has gone end-of-life as of June 2020. It is recommended by Atlassian to migrate over to Slack as the chat platform of the future, we couldn’t agree more! Since it’s time to move on, we’ve dropped support for HipChat from st2chatops. Thanks for the good memories HipChat!

Deprecation Notice for Python 2

Oh Python 2, you’ve been a long standing friend but your time has also come. Python 2 was end-of-life on January 1, 2020. As of StackStorm v3.3.0 we are beginning the process of deprecating Python 2 and migrating to Python 3. StackStorm already supports Python 3 for its own code base on RHEL/CentOS 8 and Ubuntu 18.04, and it also supports executing Python actions using Python 3. We will begin the work to migrate existing platforms to using Python 3 exclusively and be dropping support for Python 2. Sorry this has taken so long, but both Operating Systems and 3rd party packages that StackStorm depends on have taken a long time to add Python 3 support, we’ve mostly been blocked by them.

Starting with StackStorm v3.3.0 users will now see warnings on the st2ctl CLI if it is being executed from a Python 2 runtime.

$ st2ctl status

Deprecation warning: Support for python 2 will be removed in future StackStorm releases. Please ensure that all packs used are python 3 compatible. Your StackStorm installation may be upgraded from python 2 to python 3 in future platform releases. It is recommended to plan the manual migration to a python 3 native platform, e.g. Ubuntu 18.04 LTS or CentOS/RHEL 8.

There will also be a warning printed in the StackStorm system service logs (st2api, st2actionrunner, etc):

Sep 17 14:14:13 testsyslog st2workflowengine[14015]: 2020-09-17 14:14:13,852 WARNING [-] DEPRECATION WARNING. Support for python 2 will be removed in future StackStorm release(s). Please ensure that all packs used are python 3 compatible. Python 3 will already be used if you upgrade to a newer OS release

On the pack side of the house, a warning will be printed when installing a pack that only supports Python 2:

$ st2 pack install python2only
    [ succeeded ] init_task
    [ succeeded ] download_pack
    [ succeeded ] make_a_prerun
    [ succeeded ] get_pack_dependencies
    [ succeeded ] check_dependency_and_conflict_list
    [ succeeded ] download_pack
    [ succeeded ] make_a_prerun
    [ succeeded ] get_pack_dependencies
    [ succeeded ] check_dependency_and_conflict_list
    [ succeeded ] install_pack_requirements
    [ succeeded ] get_pack_warnings
    [ succeeded ] register_pack

+-------------+-------------+------------------+---------+------------------+
| ref         | name        | description      | version | author           |
+-------------+-------------+------------------+---------+------------------+
| python2only | python2only | Pack for python2 | 0.0.1   | StackStorm       |
+-------------+-------------+------------------+---------+------------------+

DEPRECATION WARNING: Pack Test2 only supports Python 2.x. ST2 will remove support for Python 2.x in a future release.

Stay tuned to our blog for an upcoming post detailing our plans for Python 2 deprecation and transition to Python 3!

Deprecation of Chef Deployment

Our Chef installation method chef-stackstorm hasn’t received an update in some time and currently has no maintainer. As of right now, this installation method is deprecated and is no longer supported. If you are a Chef developer and want to pick up support for this installation method, please get in touch by joining the #chef channel in our Slack community .

Overhaul of st2-docker

The Docker installation method st2-docker received an update recently. Its docker-compose file now pulls containers from the st2-dockerfiles repository. This is a positive step forward because now st2-docker now uses the same containers as our Kubernetes helm chart installation method stackstorm-ha.

MongoDB 4.0

MongoDB 4.0 is currently the default database on both RHEL/CentOS 8 and Ubuntu 18.04. In an effort to standardize our support matrix across the various operating systems, we’re now updating MongoDB to 4.0 on all OSes. This means that if you’re running RHEL/CentOS 7 or Ubuntu 16.04, you’ll need to upgrade from MongoDB 3.4 to MongoDB 4.0. However, there is a catch!

When upgrading your RHEL/CentOS 7 or Ubuntu 16.04 system from MongoDB 3.4 to MongoDB 4.0 it is not a direct path. In order to perform this upgrade successfully one will need to first upgrade MongoDB 3.4 to MongoDB 3.6 and then to MongoDB 4.0. These special instructions, including actual commands to run, can be found in our Version Specific Upgrade Scripts section of the StackStorm documentation. If you’re a Puppet Bolt user, we have a st2::upgrade_mongodb Plan available to perform these steps in an automated way:

mkdir modules
git clone https://github.com/StackStorm/puppet-st2 modules/st2
bolt plan run st2::upgrade_mongodb --targets stackstormhost.domain.tld

Mistral Removal

OpenStack Mistral was previously used as StackStorm’s primary workflow engine. Almost two years ago, back in StackStorm v2.10 Mistral deprecation was announced and now in v3.3.0 Mistral has been fully removed from StackStorm. Where do we go from here?

In case you haven’t heard, StackStorm has developed its own workflow engine called Orquesta. If you’re currently still using Mistral for your workflows, we’ve developed a tool to help ease the transition from Mistral to Orquesta called orquestaconvert. It is super easy to get started:

$ git clone https://github.com/StackStorm/orquestaconvert.git
$ cd orquestaconvert

You can convert a single workflow:

$ ./bin/orquestaconvert.sh ../stackstorm-mypack/actions/workflows/nasa_apod_twitter_post.yaml

Or, even better, convert all of the workflows in a pack:

$ ./bin/orquestaconvert-pack.sh --action-dir ../stackstorm-mypack/actions

Others

  • Stripping of authentication headers in webhooks
  • ssh timeouts
  • st2 bug fixes
  • orquesta bug fixes
  • st2web dependencies and security updates

There are so many more bug fixes and small changes that including them in this list would make the blog post huge. If you’re interested in learning more, see a complete list of all changes across our various repositories in our discussion post for the v3.3.0 release.

Future Plans

With all of these house-cleaning items off our plate, the StackStorm team is excited about our future plans, below is a list of items that may be coming in a future versions:

  • Add support for Ubuntu 20.04
  • Migration from Python 2 to Python 3
  • RBAC functionality (previously enterprise-only)
  • Integrate st2flow workflow composer into the Web UI  (previously enterprise-only)
  • Converting ChatOps from Javascript to Python
  • and more!

If you’re interested in learning about the other ideas we have for the future and would like to help, please checkout our roadmap documentation.

Calling All JavaScript Developers!

StackStorm’s front end web UI, st2web, could really use some help and maintenance. If you are a JavaScript developer or know someone who is looking to help out on an Open Source project, we would love to have you! Please come join our Slack community and we can help you get started.

Get Involved!

The StackStorm project is actively seeking more community contributions. There are so many ways to get started:

Thank you so much and happy automating!