tsuru 1.7.0 released
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.