Improve visibility in Helm workflows with Werf!

What’s the most annoying thing about Helm workflows? There’s literally no visibility during the deployment process. Do you have some migration (Helm) hook that’s failing? Helm will tell you that one of the hooks failed but all the kubectling is up to.

And that’s just fine, Helm is too complex even without some live tailing of the deployment process.

The current state

This article did not come out from the blue. We were searching for such a solution for some time already. A few customers deploy huge Helm charts and failing components are a huge pain. Especially when you are using flags like –atomic or –wait. Some stuff is not ready and your only chance is to fetch status with Kubectl.

All mentioned is even more painful when we try to do all the stuff from pipelines. The pipeline got stuck for 20 minutes. What next? What are the options here?

Pile of shell

This is our evergreen. You can fix all the problems of the 21st century by throwing in hundreds or thousands of lines of Shell code. But is it reliable? And if so, is someone else in your team able to introduce any change to the code? Enough about Shell, I can talk about this hours and hours. But you get the idea, right? Let’s move forward.

Specialized tool: Werf

All the struggle inspired me to the massive crawling of GitHub. And I’ve come in just in time. There’s a pretty stable tool Werf developed by Flant for Continuous Delivery tasks. But by some coincidence, they’re introducing Helm 3 support right now!

All you need to do is just prepend werf in front of the existing command. This is the result:

Not so fast

Demonstrated features are in alpha right now. So feel free to use it with some caution. This should, however, change in the following month when Helm 3 feature will be transferred to the stable channel. Can’t wait! This piece of the puzzle was fundamentally missing for past years.