Hello everyone,
Ruby 2.4 reached EOL a little while ago, and we’ve finally reach the point where some of the existing Ruby based Sensu plugins in the sensu-plugins collection have releases have dropped support for Ruby 2.4. The sensu ruby runtime needs to transition to Ruby 2.6.
The transitional Ruby 2.6 Runtime Asset
A new Ruby 2.6 runtime has been built in a separate repository to help with the transition.
The bonsai listing is here:
https://bonsai.sensu.io/assets/sensu/sensu-ruby26-runtime
The first Sensu plugin asset to be built using the ruby 2.6 run time is here:
https://bonsai.sensu.io/assets/jspaleta/sensu-plugins-chef
The chef plugins were first because latest chef releases dropped support for Ruby 2.4 resulting in runtime errors in latest asset build for chef. It’s a bit weird that the dependency gem installed in 2.4 without throwing a build error…and the problem only shows up at runtime…but it is what it is.
If you use any of the checks from the sensu-plugins-chef asset, please test my current fork with the ruby2.6 runtime and see if things are still working for you.
I will be building a few more of the existing Ruby plugins under my forked namespace to help test the ruby 2.6 runtime.
Transitioning Sensu Ruby assets to Ruby 2.6
The intention is that the sensu-ruby-runtime repository will transition to ruby 2.6 in a major release bump in a few weeks (tenatively in the last week of June). The current repository is transitory and will not be seeing releases long term.
Mitigating Impact: Use versioned asset names
It will be possible to have older ruby 2.4 based sensu-ruby-runtime versions installed side-by-side with the 2.6 runtime asset definitions using a pattern like: sensuctl asset add <repo>:<version> --rename <repo>:<version>
to configure specific versions.
For example:
sensuctl asset add sensu/sensu-ruby-runtime:0.0.10 -r "sensu/sensu-ruby-runtime:0.0.10"
sensuctl asset add sensu/sensu-ruby-runtime:0.0.11 -r "sensu/sensu-ruby-runtime:0.0.11"
This will allow you to install two different versions (0.0.10 and 0.0.11) of sensu/sensu-ruby-runtime side-by-side and encode the version into the asset name, We already use this naming pattern in the Sensu catalog repository to pin the asset version in the template files.
It will continue to be possible (and necessary) to use the ruby 2.4 runtime for some plugins until all of the existing Ruby based assets are update to build against the ruby 2.6 runtime. I’ll work on adding the specific instructions on how to continue to use the legacy 2.4 release in the sensu-ruby-runtime repository.