Kontena 1.3.0 Released

It's time for another great Kontena release, we keep rolling them out at a pretty steady pace. The newest release is numbered 1.3.0. Again we're following semver practices so there are some new goodies packed into this release as well. And naturally, lots of fixes to make the platform even more stable and easy to use.

Release details

As usual, all the release details can be found from the Github release page. There's a full list of merged pull requests and closed issues.

Highlights

This time we've focused more on internals compared to new features. This doesn't mean we didn't include any goodies, quite the opposite. There's one true gem packaged into this release as well.

Mongo driver update

One of the biggest changes, internally, was the change to the newer Mongoid release. Mongoid is the Object-Document-Mapper library which we use to access the master database. The change to the newer mongoid, and thus the much newer Mongo driver, gives the option to utilize the latest MongoDB releases. Up until now, Kontena Master was restricted to the MongoDB 3.0 version which is, to be honest, a bit outdated already. And as always, the newer database driver performs better, is generally more robust and handles failure cases much better.

As it's now possible to use hosted databases, setting up the master as highly available is much easier. Now when newer MongoDB versions are supported, it's possible to utilize for example Mongo Atlas, compose.io or others, to provide MongodDB as a service to be used as the database under Kontena Master.

Command execution enhancements

We all know that there are plenty of times where it would help immensely to be able to easily run some commands on a running container. But it's actually rather painful to first dig up where the container is actually at running at the moment, open the ssh tunnel into the host and the run docker exec .... Kontena has had the possibility to execute commands in a container for a long time already. The problem is that those commands were kind of "fire-and-forget". Yes, the user was able to see the output, to some extent, but there were no possibilities for any interaction. And a true interactive shell helps so much when you have to debug something.

That's why we pretty much re-wrote the whole command execution functionality. We changed the architecture around that area to utilize websockets so the output stream from command execution is pretty close to real-time. By utilizing websockets we were now able to also make the execution "pipe" bi-directional. What that means in practice is the ability to open truly interactive terminals into running service containers. Oh, I almost forgot to mention that even tty ability is included. That means you can now run commands with fancy colour codings, things like editors and basically anything with tty controls. And to top off this very cool feature, you can now even pipe local command output to act as input to some command running in the service container:

$ echo "beer" | kontena service exec -i redis rev
reeb  

The possibility to run an interactive terminal in a running container is really cool, take a look:

Kontena Cloud Updates

We have also made improvements and fixes to Kontena Cloud. The major new feature is the embedded Kontena Shell. You can launch the built-in Kontena Shell by selecting the Kontena Grid you want to operate and clicking Kontena Shell . You can read more about this and other features from our updated website which now has a dedicated Kontena Cloud section.

About Kontena

Want to learn about real life use cases of Kontena, case studies, best practices, tips & tricks? Need some help with your project? Want to contribute to a project or help other people? Join Kontena Forum to discuss more about Kontena Platform, chat with other happy developers on our Slack discussion channel or meet people in person at one of our Meetup groups located all around the world. Check our website for more details.

Jussi Nummelin

Read more posts by this author.

Tampere, Finland
comments powered by Disqus