Deis Workflow 2.1 Release

5 Jul 2016

Happy Tuesday, I hope everyone had a wonderful weekend! Before we struck out for fun in the weekend sun we cut a hot and fresh release of Workflow. Arriving as version 2.1 we've got lots of fixes and a few goodies to boot.

Support for AWS Instance Profiles

We've updated all of the Deis Workflow components to support credential acquisition through Instance Profiles. To enable this support, leave accesskey and secretkey blank when preparing your Workflow charts.

If you would like to transition to Instance Profiles on a running cluster you must:

  1. Upgrade to Workflow 2.1
  2. Edit Secret objectstorage-keyfile replacing accesskey and secretkey values with empty strings
  3. Restart the pods for deis-database, deis-registry and deis-builder.

Metric and Log shipping via NSQ

We have changed the metric and log shipping infrastructure to use NSQ. This architectural change helps the metric and log shipping infrastructure function under much higher rates. You will see a new deis-nsqd component running in your cluster after a 2.1.0 upgrade. All other components will use NSQ transparently.

Support for off-cluster Postgres

We've also added support to use an off-cluster instance of Postgres. For folks familiar with Deis V1 this functionality mirrors the "stateless" installations. When creating a new installation of Deis Workflow you will need to update the database_location option to off-cluster and provide connection information in the [database] section of generate_params.toml.

For more information, see our documentation on configuring Postgres.

Better application health checks

We've greatly expanded the ability to define and manage application health checks in Workflow 2.1. We've exposed the ability to define both liveness and readiness checks along with additional ways to call those checks.

We will ultimately deprecate HEALTHCHECK_ options, until then, we will translate the config:set HEALTHCHECK_ CLI calls into the new format.

Liveness checks let you inform Kubernetes that your application is, well, alive. If the liveness check fails, the Pod which failed the check will be restarted.

Setting a simple liveness check to hit port 80 on your application is as easy as deis healthchecks:set liveness httpGet 80.

Readiness checks let you tell the load balancer that your application is up and ready to handle traffic. Readiness checks are a great place for your application to verify downstream dependencies. If a dependency is unavailable, restarting your app may not resolve the issue. Instead, you may use readiness checks to inform the load balancer that your process can't accept any traffic at the moment.

Setting a complex readiness check with custom HTTP headers is also easy:

deis healthchecks:set readiness httpGet 80 \
    --path /healthz \
    --header "X-Client-Version=v1.0"

In addition to http-based health checks, we now support tcpSocket and exec. For more detailed information on configuring and using health checks see our documentation

Upgrading to Workflow 2.1

Upgrading is very easy if you've configured off-cluster object storage. Follow our upgrade instructions and enjoy Workflow 2.1

Deis community meeting this week!

Please join us for the next Deis community meeting on Thursday, July 7th:

See you there!

Posted in Workflow, Release, Announcement

triangle square circle

Did you enjoy this post?