tsr 0.6.0 release notes

Welcome to tsr 0.6.0!

These release notes cover the new features, bug fixes and general improvements you’ll want to be aware of when upgrading from tsr 0.5.0 or older versions.

What’s new in tsr 0.6.0

  • Removed the ssh-agent dependency. Now tsuru will generate a RSA keypair per container, making it more secure and with one less agent running in the Docker hosts. Now a Docker host is just a host that runs Docker. tsuru server is still able to communicate with containers created using the ssh-agent, but won’t create any new containers using a preconfigured SSH key. The version 0.7.0 will delete ssh-agent completely.

  • tsuru now supports managing IaaS providers, this allow tsuru to provision new docker nodes making it a lot easier to install and maintain. The behavior of docker-node-* admin commands was changed to receive machine information and new commands have been added. See tsuru-admin for more details.

    Right now, EC2 and Cloudstack are supported as IaaS providers. You can see more details about how to configure them in the config reference

  • Improved handling of unit statuses. Now the unit will communicate with the server, minute after minute, updating the status. This will work as a heart beat. So the unit will change to the status “error” whenever the heart beat fails after 4 minutes or the unit informs that the process failed to install.

  • Add the capability to specify the owner of a service instance. tsuru will use this information when communicating with the service API

  • During the deployment process, tsuru will now remove old units only after adding the new ones (related to the issue #511). It makes the process more stable and resilient.

Bug fixes

  • fix security issue with user tokens: handlers that expected application token did not validate user access properly. With this failure, any authenticated user were able to add logs to an application, even if he/she doesn’t have access to the app.

Breaking changes

  • tsuru source no longer supports Go 1.1. It’s possible that tsuru will build with Go 1.1, but it’s no longer supported.
  • tsuru_unit_agent package is not optional anymore, it must be available in the image otherwise the container won’t start.
  • docker cluster storage format in Redis has changed, also MongoDB is supported as an alternative to Redis. There is a migration script available which convert data in Redis to the new format, and also allows importing Redis data in MongoDB.
  • since tsuru requires a service instance to have an owner team, i.e. a team that owns the service, users that are members of more than one team aren’t able to create service instances using older versions of tsuru client (any version older than 0.11).
  • in order to define the owner team of an already created service instance, tsuru administrators should run a migration script, that gets the first team of the service instance and use it as the owner team.
  • all code related to beanstalkd has been removed, it isn’t possible to use it anymore, users that were still using beanstalkd need to change the configuration of the API server to use redis instead

Other improvements

  • improved documentation search and structure
  • improved reliability of docker nodes, automatically trying another node in case of failures
  • experimental support for automatically healing docker nodes added through the IaaS provider
  • cmd: properly handle multiline cells in tables