tsuru 1.7.0 released

Guilherme Garnier
tsurupaas
Published in
2 min readJul 1, 2019

--

We just released tsuru 1.7.0, with a lot of new features and bug fixes. Here are the most relevant ones — refer to the full release notes for more.

Support to Open Service Broker API

The concept of services in tsuru is already known. You can make any external service integrate with the tsuru workflow by implementing its service API contract and registering it in tsuru. But now there's a new way to integrate services: by registering a service broker.

Service brokers that follow the Open Service Broker API spec can be registered in tsuru with tsuru service-broker-add command. After running this, the services exposed by that broker will be available in tsuru service-list command. If you run tsuru on AWS, for example, you can use this to integrate to AWS Service Broker. Check out tsuru docs on Open Service Broker for more details and examples.

Exposing multiple ports

Before this release, every app process exposes port 8888. This can be customized in tsuru.conf file, but it's a global value. You couldn't configure a single app to expose a different port, or expose more than one port — or even no ports at all, like if you're running a worker. Now this is customizable per app process.

The configuration is made in tsuru.yaml file, in the new kubernetes section. For each process, you can list as many ports as you need, and for each port, you can set the protocol (TCP or UDP), the port (which will be set in the Kubernetes service) and the target port (the container port).

The ports configuration still has two limitations:

  • The process healthcheck will use the first configured port
  • Only the first configured port of the web process (or the only process, in case there’s only one) will be exposed in the router — but you can access the other ports from other apps in the same cluster, using Kubernetes DNS records, like appname-processname.namespace.svc.cluster.local

For more details on this, take a look at ports configuration docs.

Support to TLS certificates hot reload

Tsuru API now can check for TLS certificate changes and reload it automatically, allowing certificate updates without downtime. The new configuration key tls:auto-reload:interval in tsuru.conf file defines the reload interval.

Allow dynamically created clusters

In previous versions, if you used a Kubernetes cluster with tsuru, you needed to create the cluster yourself before registering it to tsuru, with tsuru cluster add command. Now this command can be used to dynamically create the cluster for you! It supports cloud providers like Google Kubernetes Engine, Amazon EKS and Azure Kubernetes Service.

Support to Kubernetes external traffic policy local

Kubernetes services support a configuration called external traffic policy. With the default value, which is Cluster, each kube-proxy instance can send the incoming traffic to any pod, even to other nodes. Now you can change it to Local, where kube-proxy will only send traffic to pods on the same node.

And there's more! Take a look at tsuru 1.7.0 release notes for all new features and bugfixes.

--

--