Rudder 2.7.0 “Powerboat” is out!

The latest version of Rudder has been released, v2.7.0 ‘Powerboat’! This post provides an overview of new features implemented, bug fixes and performance improvements that have gone into this release.

We fought hard against the heat (~ 35° C in Paris, that’s too much!) and holidays to bring you this new version of Rudder. We released the beta mid-July, and the final on the 31st of July (just in time).

We focused on two new major capabilities: a REST API and global parameters for configuration management. I think this version will be marked stable faster than 2.6 because these features have much less impact on all the other Rudder components.

The new features are:

  • REST API: You can now interact with Rudder using an API

  • Global Parameters: Define Parameters that can be used across all Directives

  • Improved performance: promises generation and page (Directive, Groups) rendering should be a lot faster

  • Easy Directive creation for all Technique versions: Directives, based on different versions of Techniques, can be created in a single step

  • Node search: Add possibility to create a group using multiple regex statements including the ability to specify non-matching statements

  • Rudder documentation: Rudder documentation is now available directly from the webapp

  • Various UI changes: Lots of small improvements (moving pages, new style, …)

REST API

Before 2.7 the webapp was the only way to use Rudder. We already had a very limited API however, its usage was very specific (reload technique library, archiving, …).

With 2.7, you can do almost everything through the API that you can do through the webapp today:

  • create/modify/delete Rules / Directives / Groups,

  • accept/delete Nodes,

  • create your own scripts to interact with Rudder

To use the new extensions to our API you need to create an account via Rudder’s configuration interface. Go to: Administration -> API Accounts and click on Add API Account:

We think that using the API will be a welcome approach to working with Rudder, as you can automate task(s) that can be very long to complete (such as disable numerous Rules, accept multiple nodes) while simultaneously using the Rudder webapp.

API documentation is available online.

Why not join us on IRC  (#rudder on Freenode) to discuss how you would like to use the API, we’d love to hear from you and share our experience.

Global parameters

You can now define parameters to use in all your Directives.

Sometimes you need all your nodes to share a specific value and use that value across many Directives. Before 2.7, you had to define a CFEngine variable containing that value and use it in all your Directives. This was rather complicated and quite a long task (define all those “generic variable”, don’t forget to apply them on all nodes, etc). As of 2.7 we have introduced a much more user-friendly approach.  You just need to go the Parameters configuration page and Add a new Parameter to the list and define its value (see Configuration -> Parameters).

Then in each Directive where you wish to use a global parameter you can refer to your new global parameter using: ${rudder.param.parameter_name}

In v2.7.0+ we introduced a default parameter rudder_file_edit_header which is used as a header within every file managed by Rudder. To personalise your own file header, it’s very simple: just go to the parameters page and edit the value of this parameter then at the next agent run all files managed by Rudder will now get your personalized header.

Improved performance

We really improved the way we handle Directives/Groups/Promise generation.  Thanks to these improvements the webapp experience is now significantly improved in terms of responsiveness and usability.

Before, with very large deployments, it could take several seconds to display Directives, promise generation could take several minutes. Now, promise generation is really fast (x 10) and Groups/Directives pages will be displayed instantly.

Easy Directive creation for all Technique versions

You no longer need to use the workaround of creating new Directives based on the latest version of a Technique before migrating it to the version you want to work with. You can now choose the version of the Technique you want to use before creating a new Directive.

“Not matching” regex Node search criteria

You can now search of create a Group of Nodes based on “not matching” regex for example: excluding nodes from a sub network or excluding a particular package.

You won’t have to add all your exclusion criteria, only one regexp will make it for you. Before 2.7, when you wanted to exclude nodes with hostname rudder[1-5] you had to request 5 “not” lines:

In 2.7, Just one line is enough :

Rudder Documentation

We have ensured you can access the Rudder documentation from any page of the webapp. You won’t have to be online as it is already part of your installation, just click on the link “User Manual” in the top right corner.

You can still view the documentation online.

Various UI changes

We made some small improvements to the webapp:

  • You will now find the Technique library page under the Administration section. We think managing available Techniques in a Rudder install should only be done by expert users.

  • Clicking on the “Node” section header will redirect you to the List Nodes page, instead of the “Search Nodes” page, showing you directly all nodes managed by Rudder

  • Delete Buttons are now highlighted in red, showing that deleting something in Rudder can be very risky. Don’t worry if you press this button by accident, a confirmation dialog is displayed for all dangerous actions.

Summary

That’s all for now about version 2.7 Powerboat! Migrating to 2.7 from 2.6 should be painless. We have tried to bring you new ways to use Rudder, make it faster, simpler and give you a more pleasant experience when dealing with your IT.

As I inferred above, this release has not yet been declared “stable” though it should not be long until we declare it as so.

We value our community immensely. Your support is most welcome. You can contribute feedback, ideas, bug reports, anything. Don’t hesitate to join us on IRC (#rudder on Freenode), we will be glad to welcome you there, answer your questions and listen to your feedback.

The full 2.7 changelog is here.

SHARE THIS