21 Oct 2016 in Helm, Annoucement

Helm Beta.1: Fixes, fixes, everywhere...

The Helm community has cut the first beta release for 2.0.0! Helm is now feature complete and the community is focusing on fixing bugs, general stability, and documentation.

If you haven't checked out Helm, now is a great time to jump in and help the team batten down the hatches.

As always, the great Helm community can be found in the #helm channel on the Kubernetes Slack.

  • Developer Call: Thursday, 9:30 Pacific via Zoom

Major Fixes

  • Several fixes were made to helm delete and helm rollback
  • Documentation has been refreshed
  • Three minor features were added:
    • The --kube-context global flag was added to allow you to explicitly set the Kubernetes context.
    • Tiller now has gRPC tracing for debugging Tiller. This is disabled by default.
    • The helm repo add command now fetches the repository.
  • The Linux builds are now static, and can run in Alpine Linux

For the complete list of changes view the GitHub Release tag.

Binary Downloads

Binary downloads of the Beta.1 Helm client can be found at the following links:

What's Next?

The developers are now working on fixing bugs, improving stability, and building some great docs.

Beta releases will continue until the community feels that Helm is ready for production use. So grab the helm and join the community as we approach a stable 2.0.0 release!

21 Oct 2016 in Helm

Getting Started Authoring Helm Charts

Helm is the package manager for Kubernetes. In my last post, I showed you how to install a Helm chart. Check that out if you're new to Helm or you just want a refresher.

In this post, I'm going to dig into the Helm chart authoring process to illustrate just how easy it is to get started.

I will build on our previous example: Apache Spark.

Since publishing my last post, the Spark chart is now available in the official Kubernetes chart repo. So I'll use this chart as a working example, and walk you through the bits and pieces that make it up.

Read More
17 Oct 2016 in Workflow, Developer Update

Workflow Developer Update

This is the first Workflow team developer update! In this blog post we'll give an update on how things have been rolling on the Workflow team for the past few weeks, what has been our main focus areas and some non-technical updates on how the team has been doing.

People Come, People Go

Over the past few weeks, we've had some amazingly talented people join our team, and equally amazing people move onto bigger and better things.

Matt Tucker has joined the Workflow team as a Software Engineer and Core Maintainer of Workflow. He has experience both working with Go and with Kubernetes, migrating code to production on Kubernetes supporting many Drupal and Wordpress sites. Welcome to the team, Matt!

On a sadder note, Helgi Þorbjörnsson has decided to move on. He is still part of the open source community and is still a maintainer, and he is available on the #community channel in Slack and he still pops by on the occasional Github issue. We will miss you, Helgi!

Joshua Anderson was one of our (returning) summer interns, and has since returned back to school for another year to continue his studies for computer engineering at California Polytechnic State University.

While not technically leaving us, Jack Francis has shifted over to the Helm team to do great things with Helm and Kubernetes package management!

The Great Helm Migration

Our team is heavy at work testing the migration strategy from the old Helm (known as "Helm Classic") to the new Helm. So far, we have deployed charts for every Workflow component. Look out for the charts directory in each repository!

For more history on Helm and Helm Classic, Matt Butcher wrote a wonderfully insightful blog post on Helm's First Birthday.

CI Stability Improvements

Our Continuous Integration servers have been continuously (heh) improving! A few weeks ago our CI system was very unreliable when it came to testing new features or running end-to-end test suites on a live cluster. Thanks to many stability improvements from GKE and from our own stability improvements to the end-to-end test suite, the controller release job now has a success rate of 93%, and the only test failure occurred because DockerHub was down at that point. This is a significant win over the v1 acceptance test suite, which is well-known at this point to be unreliable due to internal networking issues, provisioning issues with Vagrant or other unknown general mayhem.

Test Coverage Improvements

Some great leaps and bounds have been made to cover more ground on the test coverage side. Just because we live in a Kubernetes-centric world and some components are tightly coupled does not mean we can't write good code! In the last few releases, both the builder and the router have seen a test coverage increase of at least 15% in total coverage, bringing them both up to at least 55% coverage. The Workflow CLI has also been brought up to 72% coverage in the past few weeks. Test coverage has improved greatly, but there's still more room for improvement.

If you're feeling motivated, read the docs and make a pull request!


...Or as we like to call it - "drinking our own champagne" - we are now running a Workflow cluster internally for dogfooding purposes. We have a couple applications running on the cluster already:

  • deis-bot, a mention bot for Github comments and pull requests
  • jenkins-ci, another mention bot for notifying specific channels when a build or end-to-end test fails
  • k8s-claimer, a tool we use to lease out a cluster for the CI system

All of these components are running on this cluster, and we intend to run more applications such as our main website on it at some point.


One of the biggest incubator projects we got going on right now is Steward. Steward is a Kubernetes-native service broker. Modeled after the Cloud Foundry Service Broker System, it functions as a gateway from your cluster-aware applications to other services, both inside and outside your cluster.

For those of you aware of my endless posts about us finally getting to developing a Service Broker to provision and bind apps to databases, external filesystems, and other third-party systems like Heroku's Marketplace, this is it.

Specifically, its high-level goals are to:

  1. Decouple the provider of the service from its consumers
  2. Allow operators to independently scale and manage applications and the services they depend on
  3. Provide a standard way for operators to:
    • Publish a catalog of services to operators or other interested parties
    • Provision a service
    • Bind an application to a service
    • Configure the application to consume the service through standard Kubernetes resources

As of right now, Alpha 1 has been released. The project is still in a pre-production state, but we're working on getting everything in place before a v1.0.0 release.

What's Next?

With all that said, here's a summary on some of the things we plan on doing over the coming weeks:

  • a full migration story from Helm Classic to Helm
  • make individual Workflow components more useful to the broader Kubernetes community
  • more apps on our dogfooding cluster
  • continue to improve Steward
  • continue to improve test coverage

Thanks for reading the first Workflow developer update! Please feel free to reach out to me on Slack or on twitter if you feel like you enjoyed this update, what we can do to improve upon this post or general comments/questions about something. Thanks!

14 Oct 2016 in Kubernetes, OS X, Kube Solo

Run Kubernetes on a Mac with Kube Solo

Kubernetes is one of the best known container orchestration tools, but often, setting up a dev environment with Kubernetes is a daunting task. This is especially true for people who are just getting started with containers and orchestration in general.

Fortunately, now that Docker for Mac is generally available, you can easily run both Docker and Kubernetes on OS X allowing you to quickly develop, containerize, and work with your applications as if they were in production. But what if you want to get up and running with Kubernetes on OS X?

In this post, I will show you how to set up a Kubernetes dev environment on OS X with a tool called Kube-Solo.

Read More
14 Oct 2016 in Helm, Annoucement

Happy 1st Birthday Helm!

The Story Behind Helm

Happy 1st Birthday, Helm!

On October 15th, 2015, the project now known as Helm was born. Only one year in, Kubernetes Helm is part of the CNCF, and is marching toward the v2.0.0 release. And in every sense of the word, it is now a community-driven project. But the circumstances behind the creation of Helm read like a script for a Silicon Valley tech comedy.

Read More