tsurud 1.3.0 release notes

Welcome to tsurud 1.3.0!

These release notes cover the new features, bug fixes and required migrations.

New features

Routers configurable by app (#1492)

This release of tsuru removes the relationship between plans and routers. Routers need to be set directly to the app (a default one will be used if none is set).

Having routers tied to plans had an unpleasant experience for users that wanted to have multiple resource plans(N) and also had more than one available router(M). This required users to set up N*M plans.

Generic Pool Constraints (#1528)

Before this release, one could limit a pool to a set of specific teams. This release makes it possible to also constraint specific routers to specific pools and makes it easy to add new types of constraints in the future.

Blockable Events (#1502)

Since tsuru 1.1, every action performed on tsuru API, e.g deploys, generates an event. This release of tsuru adds the capability of blocking certain actions from being performed. This can be used in a variety of ways, e.g, blocking every action during a maintenance, blocking all actions from a certain user to mitigate a security issue etc.

Enable tagging applications and service instances (#1550)

This release adds support to tags in apps and service instances. You can set any number of tags, which can be added when creating (app-create, service-instance-add) or updating (app-update, service-instance-update) apps and service instances.

Now you can filter a list of apps by tags. There’s also a new command tag-list in tsuru client, which shows which apps and service instances have each tag.

Allow rebuilding app images with updated platform (#1498)

Now it’s possible to rebuild an app image after updating its platform. This may be used to add security fixes in the platform and redeploying the app without end-user intervention.

Support Kubernetes as a provisioner (#1475)

This release adds experimental support to Kubernetes as a provisioner.

Other improvements

  • Support limiting the number of concurrent node-container actions #1513
  • Addition of several metrics about downstream services consumed by tsuru #1535
  • machine-template-update command now supports updating the IaaS #1539
  • Redis is no longer required for log streaming (tsuru app-log -f), tail cursors directly on MongoDB will now be used.
  • The Galeb router client is now able to reuse authentication tokens using the :use-token config flag in the router. See routers configuration reference. The client implementation will now also try to remove previously created resources after some failure communicating with the router.

Required migrations

  • Due to the removal of the relationship between routers and plans, a migration is required. This migration will set the router directly to each app based on it’s plan (falling back to the default router if none is set). Just run tsurud migrate after updating tsuru.
  • Due to the newly created pool constraints, a migration is required to make current pool teams work as expected. This migration will create the corresponding constraint for each pool. Just run tsurud migrate after updating tsuru.

Bug fixes

  • Do not ignore memory limits when auto scale is disabled for the pool #1420
  • Image deploy: wrong error message when there are no nodes in application pool #1482
  • machine-template-add command doesn’t update existing templates #1519
  • user-list command should display information of the user that is logged in #1430
  • app-list command removing pools with apps #1575