Deis Workflow, Beta 4

11 May 2016

Another few weeks, another Deis Workflow beta!

And what good is a changelog if it doesn't come with a soundtrack? Maybe a little "Crazy on You" by Heart...

Quicker deploys, now in batches

Until beta 4, our default deploy took a conservative approach to rolling updates. One pod out and one pod in. For folks running large pod counts, deploys would take an annoying amount of time. We now roll pods with a configurable batch size. By default we'll match the batch size to the number of nodes in your cluster. You may also change it up by setting DEIS_DEPLOY_BATCHES to something less annoying:

$ deis config:set DEIS_DEPLOY_BATCHES=5 -a chuck
Creating config... done

=== chuck Config

Don't worry, if the batch count doesn't match your process count, we do the maths.

Good things (Docker Images) come to those who sleep()

When experiencing slow network syndrome (tm), we will now patiently wait an additional 10 minutes for images to be pulled from remote image hosts before failing the deploy.

Helm Classic

As we are transitioning the helm project into the Kubernetes GitHub organization, we need to make sure you can still install Deis Workflow. We've decided to rename helm to "Helm Classic" which will be its sassy new name until we have a migration path to Kubernetes Helm.

Don't worry, teaching your fingers to type helmc instead of helm should wrap up right around the heat death of the universe.

On that note, the astute may have observed that there aren't upgrade instructions in this beta. Well, they didn't make the release cut but we do have a plan. The goods are over in helm/helm-classic:

Lightly Abridged Changelog for v2.0.0-beta3 -> v2.0.0-beta4


  • adb9b43 secret: use objectstorage secret for creds than minio user secret
  • d4dcc0d config: move from timelocal to timeiso8601
  • dce56d5 config: add application name as part of the log information
  • eec2126 git: curl app endpoint for "Powered by"
  • 30e7b2f controller: Show the error message from controller instead of resposnse code
  • 16f8968 monitoring: Add platform-monitoring docs
  • 55f4256 deploy: support doing a larger number than 1 in, 1 out deployment
  • be4fc6e coverage: use yaml file for
  • 0591f87 scheduler: add in better pod cleanup procedure in mock and add in deletionTimestamp handling
  • 8ab1f78 scheduler: add 10 mins to deploy timeout if image pull is slow
  • 491a066 scheduler: clean up stray pods when a release is deleted


  • 4ec7722 docker-push: handle the docker push errors
  • 495f33e router: Handle comma delimited X-Forwarded-For values
  • 70139bc cli: update deis CLI to the latest version
  • eacaf38 git-push: handle the errors during git push
  • 8e9de01 cleaner: remove the usage of watch api
  • 9cc7852 gitreceive: ignore error if git gc fails
  • 93c2569 installing-workflow: fix getting started guide links
  • 3105911 app: catch a higher level python-requests exception for verify application health
  • bb84471 scheduler: check if the pods are ready in scale up operations before comparing to desired state
  • e383586 app: response object was not accessible if app verification threw request exception
  • a6c0ea1 healthcheck: URL is required but set_healthcheck did not account for that
  • bb09ceb readinessprobe: contianer shouldn't be restarted if the database is unavailable
  • 7392eb3 config: proc type names validation should allow alphanumeric
  • 5b3af45 tests: add missing tests for /readiness endpoint
  • 70ea69d deploy: account for readiness initial delay when determining if a pod is ready
  • fdc72ca port: retry a fixed number of times to find the port
  • 3ff8f59 README: Kubernetes 1.2 is a minimum requirement now
  • fd7cabc scheduler: use CA cert to verify API SSL certficiate
  • dab4911 builds: User should be able to do a deploy an app after a failed attempt


  • d087ab3 helmc: update the docs to use helm classic instead of helm


  • 29072ad Makefile: update go-dev to 0.11.1
  • a4d5d69 buildpacks: update heroku-buildpack-scala to v70
  • c9b526c buildpacks: update heroku-buildpack-go to v34
  • 2e81ae6 buildpacks: update heroku-buildpack-nodejs to v90
  • b0f2c69 buildpacks: update heroku-buildpack-php to v102
  • d271c2b logs: Add deis logs test
  • f4714c7 makefile: Add the ability to focus a test
  • 6441ece Makefile: update go-dev to 0.11.1
  • 42d038c src: bump documentation to reference v2.0.0-beta3
  • fe7d82e release: add a new removal step for release-checklist
  • 1def311 settings: Allow for comma-delimited RESERVED_NAMES
  • 61726ec requirements: update pytz to 2016.4
  • e4fc4db requirements: update codecov lib to 2.0.3
  • 3e2c025 requirements: Django 1.9.6
  • af5963c requirements: update docker-py to 1.8.1
  • 122ace6 versioneye: add version eye integration
  • aae80f4 requirements: Update to python-requets 2.10.0
  • df10ebb tests: improve coverage by triggering KubeExceptions (and other types)
  • 222ec0c requirements: update requests-toolbelt to 0.6.1
  • f5f2917 tests: output the content/data of the response when status code does not match
  • 938246b tests: add long message to all assert functions that use status_code checks

Feedback Welcome!

We would love to get your feedback. Join us in our new #community slack channel or file an issue and share your experience!


The Deis Team

For those who made it to the bottom, have some AC/DC:

Posted in Deis Workflow, Announcement

triangle square circle

Did you enjoy this post?