tsurud 1.8.0 release notes

Welcome to tsurud 1.8.0!

These release notes cover the new features, bug fixes. For a complete list of changes, check our 1.8.0 github milestone.

New features

Add support for multiple versions in kubernetes provisioner (#2392)

In this release we added support for running multiple versions of the same app at the same time, this allows developers to roll out their apps using a canary strategy.

Use versions to manage images and its metadata (#2390)

Tsuru introduced a new concept called app versions, this concept allows us to simplify lot how we handle images and how we add metadata to images generated during a deploy. This is the first step in supporting running multiple versions of the same app simultaneously.

Improve container image garbage collector: add metrics, locks and creates a tsuru event (#2400)

Now the Garbage collector of images uses a tsuru event to register all changes made from it.

Stream logs directly from kubernetes api-server (#2408)

We did an important architectural change using kubernetes provisioner, we intend to maintain Tsuru as a global control-plane application, we are assigning the responsibility to store logs to kubelet engine, thus allowing Tsuru to maintain many k8s clusters without any bottleneck.

Support dynamically loading router definitions from database (#2413)

Tsuru now has support to create and update routers without changing the config file.

Other improvements

  • provision/docker: add pids limit config option (#2384)
  • provision/kubernetes: Configurable max surge and unavailable in deploys (#2385)
  • provision/kubernetes: Improved errors and cancellation for image deploys (#2388)
  • provision/kubernetes: Remove ‘-base’ suffix for base deployments (#2395)
  • auth/oauth: Make types private and always read urls from config (#2396)
  • Return all cluster information for admin users (#2402)
  • Add WSL2 oauth support (#2404)
  • Add a flag to suppress sensitive environment variables at the event API (#2405)
  • feat(api/service): support updating and showing plan parameters for service instances (#2409)
  • fix(api/service): support for force removal of service instances (#2410)
  • provision/kubernetes: add option to use entire cluster as a single pool (#2411)
  • provision/cluster: add metrics for cluster info (#2417)
  • provision: Propagate app tags as labels or annotations (#2418)
  • Allow overriding plan memory and cpu for a single app (#2420)
  • provision/kubernetes: drop usage of deprecated rollback subresource (#2423)

Bug fixes

  • Ensure image versions are never reused and always incremented (#2382)
  • provision/kubernetes: Reset deployment timeout when progress happens (#2386)
  • provision/docker: Ignore errors during bind unit when adding units (#2393)
  • router/rebuild: Only save rebuild event on error (#2394)
  • router/galebv2: Use unambiguous prefix for galeb pool and rule names (#2397)
  • provision/kubernetes: Use labels in pod template to find version (#2399)
  • Fix pool list for users on multiple teams (#2415)