StackStorm / community

Async conversation about ideas, planning, roadmap, issues, RFCs, etc around StackStorm
https://stackstorm.com/
Apache License 2.0
8 stars 3 forks source link

StackStorm 3.5 pre-release testing #81

Closed amanda11 closed 2 years ago

amanda11 commented 3 years ago

We're ready to prepare the StackStorm v3.5 release and start pre-release testing..

Release Process Preparation

Per Release Management Schedule @amanda11 is the Release Manager and @winem is Assisting for v3.5. They will freeze the master for the major repositories in StackStorm org, follow the StackStorm Release Process which is now available to public, accompanied by the Useful Info for Release managers. Communication is happening in #releasemgmt and #development Slack channels. The first step is pre-release manual user-acceptance testing for v3.5dev.

Why Manual testing?

StackStorm is very serious about testing and has a lot of it:

See st2ci and st2cd for more examples and workflows about how StackStorm automation is used to test StackStorm (dogfooding).

That's a perfect way to verify what we already know and codify expectations about how StackStorm should function.

However it's not enough. There are always new unknowns to discover, edge cases to experience and tests to add. Hence, manual Exploratory Testing is an exercise where entire team gathers together and starts trying (or breaking) new features before the new release. Because we're all different, perceive software differently and try different things we might find new bugs, improper design, oversights, edge cases and more.

This is how StackStorm previously managed to land less major/critical bugs into production.

TL;DR

curl -sSL https://stackstorm.com/packages/install.sh | bash -s -- --user=st2admin --password=Ch@ngeMe --unstable

See the Testing Process, where it will walk you through:

Additionally, try to use that StackStorm instance as you normally would, maybe try to break it in new and interesting ways that you haven't tried before, and report any regressions found comparing to v3.4.

At this stage, the following installation methods for 3.5 are available for testing:

Extra points for PR hotfixes, reporting entirely new bugs, and missing test cases!

Specific changes to test

If you have successful test results, please post a summary of what all you tested (OSes, what features you tested).

If you run into any bugs, please open them in the respective repositories and link to this issue from there. I will add them to the list at the bottom of this description.

If you have any issues running StackStorm or running the tests, please post down below.

Major changes

Full Changelog

Changes which are recommended to ack, explore, check and try in a random way.

st2

Added

Changed

Improvements

Fixed

st2web

Changed

orquesta 1.4.0

Changed

st2chatops

Changed

Added

Removed

Conclusion

Please report findings here and bugs/regressions in respective repositories. Depending on severity and importance bugs might be fixed before the release or postponed to the next release if they're very minor and not a release blocker.

Issues Found During Release

PRs Merged for Release

TODOs

amanda11 commented 3 years ago

Successfully tested st2 3.5dev on EL7 & EL8 on vagrant, with the self-check and manual Web testing.

winem commented 3 years ago

(I confused my Github accounts and deleted the comment from my other one, mweinberg-cm.)

Successfully tested st2 3.5dev on U18 & U20 in vagrant and the oneline-installer on U20 successfully.

amanda11 commented 3 years ago

Tested:

Problem found: upgrade doesn't update nginx st2.conf so don't get the TLS upgrade. Generating a doc PR to mention steps to configure this, and also that /etc st2.conf on EL won't get updated on package update, and on Ubuntu you get asked what to do.

Also finding a problem with aws pack when reload config after upgrade due to duplicate key "headers". After upgrade, running: st2ctl reload --register-all will complain if any installed actions have duplicate parameters.

Will add a note to upgrade_notes (https://github.com/StackStorm/st2docs/pull/1077) Issue raised on AWS pack: https://github.com/StackStorm-Exchange/stackstorm-aws/issues/114

cognifloyd commented 3 years ago

Also finding a problem with aws pack when reload config after upgrade due to duplicate key "headers". After upgrade, running: st2ctl reload --register-all will complain if any installed actions have duplicate parameters.

Background:

@blag mentioned that issue in slack (#exchange) on May 25th https://stackstorm-community.slack.com/archives/C01GD259JMP/p1621963277006700

A recent change in Orquesta has uncovered a few bugs in Exchange packs. In increasing order of difficulty…

The LastLine pack: 1 https://github.com/StackStorm-Exchange/stackstorm-lastline/blob/master/actions/submit_url.yaml The verify key is duplicated in that file. The bugfix would be to remove it. That’s an easy bug to fix if somebody would like to take it on.

The FreeIPA pack: https://github.com/StackStorm-Exchange/stackstorm-freeipa/blob/master/actions/env.yaml There are two server keys in that file, and we need to figure out which one to remove.

The AWS pack: https://github.com/StackStorm-Exchange/stackstorm-aws/blob/master/actions/apigateway_test_invoke_authorizer.yaml There are two headers keys in that file, and we need to figure out which one to remove. This could be as simple as regenerating the actions, but it can turn into a rabbit hole.

I believe he noticed these issues due to exchange CI failures, so only 3 exchange packs should have this issue: LastLine, FreeIPA, and AWS.

There are actually 2 PRs involved:

The orquesta change showed how to register the UniqueKeyLoader so that it is always used.

The st2 change used that same method so that all yaml files will be loaded with the UniqueKeyLoader. UniqueKeyLoader was only used for loading the openapi specs before the st2 change. So, failing to register actions was an unexpected behavioral change caused by that st2 PR.

amanda11 commented 3 years ago

Thanks - I've raised issues on the 3 packs with "help wanted" label, and identifying them as incompatible at moment with 3.5.

amanda11 commented 3 years ago

On upgraded El8 tested editing workflows from examples that had retry/delay in, all ok. Created new workflows with retry and delay in ok.

amanda11 commented 3 years ago

Issue found on attempting upgrade with migration script - /opt/stackstorm/st2/bin/st2-migrate-db-dict-field-values isn't present on system after upgrading packages or on install. We seem to be missing code that picks up the version specific migration scripts to include in the bin directory.

amanda11 commented 3 years ago

Seeing problems installing slack pack on focal, due to complaints about libxml. No issues on EL8 or bionic. Might be to do with hardcoding of version of libxml in pack, rather than anything to do with st2 itself. Other packs install fine.

amanda11 commented 3 years ago

Currently validating a manual install of single node on EL8. Install went fine, just a minor doc change PR raised as found mention of ewc: https://github.com/StackStorm/st2docs/pull/1078. Need to do some more validation checks but all good so far...

Kami commented 3 years ago

Issue found on attempting upgrade with migration script - /opt/stackstorm/st2/bin/st2-migrate-db-dict-field-values isn't present on system after upgrading packages or on install. We seem to be missing code that picks up the version specific migration scripts to include in the bin directory.

Good catch.

Could be that we need to update rules in st2-packages.

I thought we only need to do that if we want to install something into /usr/local/bin or similar, but should work out of the box for the virtual environment (since we just use setup.py metadata for that), but I could be wrong.

amanda11 commented 3 years ago

@Kami it looks like in past we've put st2common/bin/migrations/ into the package so it gets deployed into /opt/stackstorm/st2/bin - looking at the old upgrade notes. So I presume we had some generic mechanism in place to do that - but I can't see anything in history on st2-packages, and I'd have thought it was there. Or whether that was written as custom rpm spec each time perhaps? I'm hoping someone with some history has an idea? I checked and can't find the .py or .bin file on the system, not even under st2common...

Kami commented 3 years ago

@armab Edit, actually I believe the right path is /opt/stackstorm/st2/bin/st2common/bin/migrations/v3.5/st2-migrate-db-dict-field-values. Can you please verify? Maybe just the upgrade notes need to be updated.

EDIT 2: Yeah I'm also just looking through git history in st2-packages and don't see anything which would indicate how that ever worked in the past :)

Kami commented 3 years ago

Ah, so yeah, we utilized setup.py metadata, but looks like we removed old entries a while back https://github.com/StackStorm/st2/commits/bfb506363f1bc3e6cdd4f20d012ad85b7fc166af).

Will open st2 pr.

amanda11 commented 3 years ago

From manual install:

# pwd
/opt/stackstorm
[root@el8-man-install stackstorm]# find . -name "st2*migrate*db*dict*"
[root@el8-man-install stackstorm]# 
amanda11 commented 3 years ago

Upgrade on EL8 using the migration script successful - note - didn't have huge number of executions as was fresh system created just for testing upgrade. Multiple get command tested.

amanda11 commented 3 years ago

Some quick testing with Focal manual install and Bionic bash installer. Included integration with chatops setup to slack.

arm4b commented 3 years ago

Fix for the Docker nginx config patch, based on recent nginx changes in stackstorm/st2: https://github.com/StackStorm/st2-dockerfiles/pull/48

winem commented 3 years ago

Successfully tested:

winem commented 3 years ago

Was able to test the fixes for the Slack pack successfully.

Will do some more tests regarding upgrades from 3.4 to 3.5dev tomorrow.

winem commented 3 years ago

Just verified that the TLS 1.3 support works in Vagrant and via the bash installer.

amanda11 commented 3 years ago

Tested manual and bash installs on EL7, and upgrade on EL7.

amanda11 commented 3 years ago

Validated that on xenial if try and install unstable it complains unsupported version.

amanda11 commented 3 years ago

Manual U18 ok.

amanda11 commented 3 years ago

Myself and @winem both tested U18 upgrade

guzzijones commented 3 years ago

Thanks - I've raised issues on the 3 packs with "help wanted" label, and identifying them as incompatible at moment with 3.5.

I can also confirm that I bumped into the 'duplicate keys' problem with pack configuration files. I was running st2 pack install .... to install a pack. The duplicate key was in a config file. It was a little difficult to diagnose because I had to dig through the logs and find the key that was the error.
The pack install command only returned a generic 500 Internal Server Error

So we are NOT going to allow duplicate keys then? Fine with me , it is just a little hard to debug when one has to dig into the logs if it is the config file that has issues.

amanda11 commented 3 years ago

With pack config problems I have found that you get more error information on st2ctl reload --register-configs, when you put in 'bad config' compared, to installing a pack where the config file is already present. I've found that for other errors in pack config, as opposed to duplicate keys - but I wonder if its the same.

Rejecting duplicate keys is not good, and we do have mention of it in the upgrade notes - and I'll make sure its in the release blog as well.