.. Copyright 2015 tsuru authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. ======================== tsr 0.11.0 release notes ======================== Welcome to tsr 0.11.0! These release notes cover the :ref:`new features `, :ref:`bug fixes `, :ref:`other improvements ` and :ref:`backward incompatible changes ` you'll want to be aware of when upgrading from tsr 0.10.0 or older versions. .. _new-0.11.0: Main new features ================= * Pool management overhaul. Now pools are a concept independent on the docker provisioner. You can have multiple pools associated with each team. If that's the case, when creating a new application, users will be able to choose which pool they want to use to deploy it. To support these features some client commands have changed, mainly ``tsuru app-create`` support a ``--pool `` parameter. Some action is needed to migrate old pool configuration to this new format. See :ref:`backward incompatible changes ` section for more details. `#1013 `_ * Node auto scaling. It's now possible to enable automatic scaling of docker nodes, this will add or remove nodes according to rules specified in your tsuru.conf file. See `node auto scaling` topic and :ref:`config reference ` for more details. `#1110 `_ .. _bug-0.11.0: Bug fixes ========= * Better handling erroneous tsuru.yaml files with tabs instead of spaces. `#1165 `_ * Restart after hooks now correctly run with environment variables associated to applications. `#1159 `_ * ``tsuru app-shell`` command now works with tsuru api under TLS. `#1148 `_ * Removing machines from IaaS succeed if referenced machine was already manually removed from IaaS. `#1103 `_ * Deploy details API call (/deploy/) no longer fail with deploys originated by running ``tsuru app-deploy``. `#1098 `_ * Cleaner syslog output without lots of apparmor entries. `#997 `_ * Running ``tsuru app-deploy`` on Windows now correctly handle directories and home path. `#1168 `_ `#1169 `_ * Application listing could temporarily fail after removing an application, this was fixed. `#1176 `_ * Running ``tsuru app-shell`` now correctly sets terminal size and TERM environment value, also container id is no longer ignored. `#1112 `_ `#1114 `_ * Fix bug in the flow of binding and unbinding applications to service instances. With this old bug, units could end-up being bound twice with a service instance. .. _other-0.11.0: Other improvements ================== * Limited number of goroutines started when initiating new units, avoiding starving docker with too many simultaneous connections. `#1149 `_ * There is now a tsr command to run necessary migrations when updating from older versions. You can run it with ``tsr migrate`` and it should not have side- effects on already up-to-date installations. `#1137 `_ * Added command ``tsr gandalf-sync``, it should be called if Gandalf is activated on an existing tsuru api instance. It's responsible for copying existing users and teams credentials to Gandalf. Users added after Gandalf activation in tsuru.conf will already be created on Gandalf and this command doesn't needed to be called further. `#1138 `_ * It's now possible to remove all units from an application (thanks Lucas Weiblen). `#1111 `_. * Removing units now uses the scheduler to correctly maintain units balanced across nodes when removing a number of units. `#1109 `_ * tsuru will keep trying to send image to registry during deploy for some time if the registry fails on the first request. `#1099 `_ * It's possible to use a docker registry with authentication support. See :ref:`config reference ` for more details. `#1182 `_ * Partial support for docker distribution (registry 2.0). Image removal is not yet supported. `#1175 `_ * Improved :ref:`logging ` support, allowing cloud admins to configure any of the three tsuru logging options: syslog, stderr or log file. At any time, it's possible to enable any of the three options. * Running commands with ``tsuru app-run`` now log command's output to tsuru logs. `#986 `_ * Graceful shutdown of API when SIGTERM or SIGINT is received. The shutdown process now is: * Stop listening for new connections; * Wait for all ongoing connections to end; * Forcibly close ``tsuru app-log -f`` connections; * Wait for ongoing healing processes to end; * Wait for queue tasks to finish running; * Wait for ongoing auto scaling processes to end. `#776 `_ * Included lock information in API call returning application information. `#1171 `_ * Unit names now are prefixed with application's name (thanks Lucas Weiblen). `#1160 `_. * Admin users can now specify which user they want removed. `#1014 `_ * It's now possible to change metadata associated with a node. `#1016 `_ * Users can now define a private environment variable with `tsuru env-set` (thanks Diogo Munaro). * Better error messages on server startup when MongoDB isn't available (thanks Lucas Weiblen). `#1125 `_. * Add timing information to the healthcheck endpoint, so tsuru admins can detect components that are slow, besides detecting which are down. * Now `tsuru app-remove` does not guess app name (thanks Lucas Weiblen). `#1106 `_. * General improvements in the documentation: - typo fixes and wording improvements to :doc:`install ` and :doc:`configuration ` pages (thanks Anna Shipman). - fix instructions for key management in the :doc:`quickstart ` page (thanks Felippe Raposo). - improve documentation for the :doc:`contributing ` page (thanks Lucas Weiblen). - fix user creation instruction in the :doc:`installing ` page (thanks Samuel Roze). - fix wording and spelling in the `Gandalf install` page (thanks Martin Jackson). .. _backwards-0.11.0: Backward incompatible changes (action needed) ============================================= * There are two migrations that must run before deploying applications with tsr 0.11.0, they concern pools and can be run with ``tsr migrate``. The way pools are handled has changed. Now it's possible for a team to have access to more than one pool, if that's the case the pool name will have to be specified during application creation. `#1110 `_ * Queue configuration is necessary for creating and removing machines using a IaaS provider. This can be simply done by indicating a MongoDB database configuration that will be used by tsuru for managing the queue. No external process is necessary. See :ref:`configuration reference ` for more details. `#1147 `_ * Previously it was possible for more than one machine have the same address this could cause a number of inconsistencies when trying to remove said machine using ``tsuru docker-node-remove --destroy``. To solve this problem tsuru will now raise an error if the IaaS provider return the same address of an already registered machine. If you already have multiple machines with the same address registered in tsuru, trying to add new machines will raise an error until the machines with duplicated address are removed.