Deis Workflow Release Candidate (Hooray)

6 Jun 2016

The Deis Workflow team is as happy as a baby goat jumping off stuff during spring time. We just cut Release Candidate 2 of Deis Workflow!

While we are busy leaping off things in fits of glee, give Deis Workflow RC2 a shot.

We've been generally cleaning house and closing bugs. There are a few changes that we want to highlight for this release candidate.

Private Image Support

We shipped private image support in Workflow Beta 3. For RC2, instead of always pulling the remote images to the managed on-cluster registry, we now use ImagePullSecrets baked into Kubernetes. This means your private images will be pulled directly to the nodes. Usually good advice to go direct to the source concerning private matters, no?

New name for Release ENV vars

If your application is utilizing the DEIS_RELEASE environment variable you will need to update your application. In a bout of house cleaning, we've switched that over to WORKFLOW_RELEASE, it is Deis Workflow afterall. We've updated all our example apps as well, because bug free demos are always nice to see.

Ubuntu Slim, so thin!

Through the beta phase we repeatedly observed a number of DNS failures both on our end-to-end testing infrastructure and our development installs. Through a long and twisty maze of bugs, this boiled down to a bug in ulibc's DNS resolver.

As the "age old" adage goes, "it is always DNS".

For DNS stability, image security visability and other ilities, we've switched our base distribution to Ubuntu Slim. If Macho Man Randy Savage were still around, I'm sure he'd be glad for the change.

Upgrading to GA Release

The release of Helm Classic and RC2 have put in place the necessary functionality to provide an in-place upgrade story. The TL;DR version is that you will need Helm Classic 0.8.0 or later, a running Workflow RC2 cluster, a copy of your templated parameters and some cluster secrets. A quick un-install and re-install will bring your Workflow cluster up to stable when we ship our GA Release.

For the intrepid, you should be able to upgrade from beta4 to RC2 by manually applying a few Kubernetes annotations. Give it a shot! Your experience here is very welcome.

The updated documenatation is available here.

Upgrading from RC1 to RC2 should work as-documented.

Platform SSL Secret Changes

To mirror the secret format used by Ingress controllers in Kubernetes, we've changed the keys used for the platform SSL certificate. Before upgrading, update the secret via kubectl --namespace=deis edit secret deis-router-platform-cert:

  • Copy the existing cert key to tls.crt
  • copy the existing key key (ahem) to tls.key

Once you have completed the upgrade to RC2 you may delete the cert and key keys (ahem).

That's not all!

Many bug fixes, small updates, little tweaks and tuning, our ride has been pimped and is ready for prime time.

Click through for the complete release notes for RC1 and RC2.

Deis Workflow Beta4 to RC1


  • (postgres) - contrib: expose which files were found in backup dir
  • (workflow-e2e) - deploy: test that setting DEPLOY_BATCHES on an app works
  • (workflow-manager) - swagger: add swagger spec for the workflow manger api
  • (workflow-manager) - *: hook up version checker to the workflow-manager versions API
  • (workflow-manager) - swagger: generate client stub for wfm API spec
  • (controller) - images: use imagePullSecret when pulling a private image


  • (slugrunner) - Dockerfile: update objstorage CLI
  • (router) - glide: Compensate for the speter issue
  • (dockerbuilder) - rename DEBUG to DEIS_DEBUG
  • (dockerbuilder) - encode: encode chunk to unicode
  • (logger) - weblog: strip newline characters from log line
  • (slugbuilder) - rename DEBUG to DEIS_DEBUG, unset after use
  • (slugbuilder) - Dockerfile: update objstorage CLI
  • (workflow-e2e) - apps: extend the time deis run is allowed to run
  • (minio) - glide: add alias for
  • (builder) - pkg/sshd: wrap git receive functionality in a locking utility fu… (#339)
  • (builder) - *: remove comments and last traces of cookoo (#346)
  • (workflow-manager) - glide: add alias for (#46)
  • (workflow-manager) - swagger: rename the model definitions for backward compatibility
  • (workflow-manager) - config.go: allow env vars to be shorter names (#50)
  • (workflow-manager) - glide: use kubeapp interfaces for Kubernetes client operations
  • (workflow-manager) - boot.go,jobs/jobs.go: fix panic on startup and infinite recursion on background job
  • (controller) - scheduler: move getport to use docker functions to split image info
  • (controller) - scheduler: do not update env secret if it already exists
  • (controller) - scheduler: cast PodState to string to get state name
  • (controller) - scheduler: run pod container name did not match how app containers are done
  • (controller) - scheduler: waiting state does not always have a message


  • (stdout-metrics) - Dockerfile: Refactor image to use ubuntu-slim
  • (slugrunner) - rootfs/Dockerfile: DEISRELEASE -> WORKFLOWRELEASE
  • (registry) - Dockerfile: Refactor image to use ubuntu-slim
  • (router) - rootfs/Dockerfile: DEISRELEASE -> WORKFLOWRELEASE
  • (router) - Dockerfile: Refactor image to use ubuntu-slim
  • (dockerbuilder) - Dockerfile: Refactor image to use ubuntu-slim
  • (logger) - rootfs/Dockerfile: DEISRELEASE -> WORKFLOWRELEASE
  • (logger) - Dockerfile: Refactor image to use ubuntu-slim
  • (slugbuilder) - rootfs/Dockerfile: DEISRELEASE -> WORKFLOWRELEASE
  • (slugbuilder) - buildpacks: update heroku-buildpack-go to v37
  • (slugbuilder) - buildpacks: update heroku-buildpack-go to v40
  • (fluentd) - syslog-plugin: Remove dead code
  • (fluentd) - Dockerfile: Refactor image to use ubuntu-slim
  • (monitor) - grafana: Update to official 3.0.1 release
  • (monitor) - grafana: Update default dashboards
  • (monitor) - grafana: Refactor image to use ubuntu-slim
  • (monitor) - influxdb: Refactor image to use ubuntu-slim
  • (monitor) - telegraf: Refactor image to use ubuntu-slim
  • (postgres) - rootfs/Dockerfile: bump PG_VERSION
  • (postgres) - rootfs/Dockerfile: DEISRELEASE -> WORKFLOWRELEASE
  • (postgres) - Dockerfile: Refactor image to use ubuntu-slim
  • (workflow-e2e) - Makefile: update go-dev to 0.13.0
  • (workflow-e2e) - glide.lock: update go deps with newer glide
  • (workflow-e2e) - apps:create: create): Assert on new/improved CLI output
  • (minio) - rootfs,mc/Dockerfile: DEISRELEASE -> WORKFLOWRELEASE
  • (minio) - Dockerfile: Refactor image to use ubuntu-slim
  • (minio) - manifests: remove repository manifests
  • (minio) - Makefile,mc: remove mc and integration tests
  • (builder) - Makefile,Dockerfile: DEISRELEASE -> WORKFLOWRELEASE
  • (builder) - *: use mirror for spf13/pflag, pin other packages
  • (builder) - Dockerfile: Refactor image to use ubuntu-slim
  • (workflow-manager) - Dockerfile: Refactor image to use ubuntu-slim
  • (workflow-manager) - glide: Update dependencies
  • (controller) - requirements: chore(requirements) update requests-toolbelt to 0.6.2
  • (controller) - Dockerfile, DEISRELEASE -> WORKFLOWRELEASE
  • (controller) - requirements: Update Gunicorn to 19.5.0
  • (controller) - requirements: update requests-mock to 1.0.0 (and the forked branch)
  • (controller) - requirements: update coverage to 4.1
  • (controller) - Dockerfile: Refactor image to use ubuntu-slim

Deis Workflow RC1 to RC2


  • (router) - router: Pass on X-Forwarded-Proto and X-Forwarded-Port
  • (router) - ssl: Delete unused certs and dhparam
  • (charts) - router: Make platformDomain configurable thru toml
  • (charts) - builder: add git push lock timeout env to builder rc
  • (workflow-manager) - pkg,api: add ping path to swagger spec


  • (monitor) - grafana: deis-router dashboard had mislabeled alias
  • (builder) - proctype: deploy dockerfile app with procfile
  • (router) - router: Fix app_name issue
  • (router) - router: Improve accuracy of warning message
  • (workflow-e2e) - apps_test: mark problematic spec as pending
  • (controller) - gunicorn: silence healthcheck points in access logs
  • (controller) - scheduler: update instead of appending env vars so hardcoded values can be overwritten
  • (controller) - scheduler: remove the hardcoded port from RC template
  • (controller) - app: only add a PORT env var if there is a value
  • (workflow) - reference-guide/controller-api: v1->v2
  • (charts) - router-dev: Better parity with workflow-dev chart


  • (workflow) - update to reflect current output
  • (workflow) - various: update 'beta4' occurrences to 'rc1'
  • (workflow) - managing-workflow: add Security Considerations
  • (workflow) - update from rc1 amended processes
  • (workflow) - upgrades: expand upgrade documentation
  • (workflow) - src/roadmap/ adjust spacing


  • (router) - ssl: Remove support for old cert secret format
  • (workflow-e2e) - Dockerfile: update Workflow CLI to latest published
  • (controller) - requirements: update to Gunicorn 19.6.0
  • (controller) - Dockerfile: update pip to 8.1.2
  • (workflow) - release-checklist: Amend with steps for router chart
  • (workflow) - workflow-rc2: releasing workflow-rc2
  • (charts) - controller: Add grafana as a reserved name
  • (charts) - workflow-rc2: releasing workflow-rc2(-e2e) and router-rc2

One goat for the road

Posted in Deis Workflow, Annoucement

triangle square circle

Did you enjoy this post?