Hey folks, I’ve been working with Helm3 since the alpha came out (some amount of time ago that I’m unwilling to lookup). It’s been a pretty good experience so far but I wanted to sketch out my experience to date. I may come back and update this later as I run into new issues.
Goodbye Tiller
I’m super psyched that Tiller is gone. I, think I, get what tiller was intended to do but it represented both an operational and security failure plane. That ok if it provides significant value but I didn’t see that value. Even though most of my examples in this blog involve using helm I rarely used tiller myself. I would use helm templating to generate yaml manifests then just apply those directly. It was a decent system but it was definitely kind of a pain. Helm3 drops Tiller and once it matures it will probably be my go to.
Why Helm
Just wanted to write this down somewhere. I know there are a few different, and seemingly really good, alternatives to Helm. I don’t really use them. I don’t have anything against any particular tool or approach, I just believe that for package managers the top feature I care about is, is it a standard. Helm is, IMO, the closest thing to a standard for k8s “package” management. So I’ll use helm, write charts, and use tools that support helm packages. I’d rather see helm get better and evolve than look for the “best” tool. If the standard changes, or solidifies somewhere else, I’ll migrate to that.
It’s an Alpha
It’s an Alpha. Some stuff is broken, or doesn’t work, or kind of doesn’t work, or sometimes doesn’t work. So far I’ve noticed that it really doesn’t like dealing with resources that get namespace labels, particularly if they aren’t for the namespace you’re currently pinned to. Also helm upgrade seems to work great as long as you don’t actually want objects to update or change… But that being said it’s definitely worth trying out. A lot of what you want to do just works and you can get around the stuff that doesn’t work by adding the --dry-run
switch to your install command or using the templating function to just create yaml files you can apply normally.
Things I’ve Noticed
helm upgrade
doesn’t seem to do much- It really doesn’t like when you are creating objects in multiple namespaces
- It doesn’t seem to like or necessarily respect it when you use the
--namespace
flag - The syntax has changed in what I think is a real positive way
- The naming no longer appends some chart based name afterwords
- I love this cause for some reason I really care about the names of things
Check it Out
I’d suggest you check it out and start using it. For those of use that can order k8s clusters on demand, cause we use one of the *KS’s, it’s really easy to grab a cluster, try out some of our existing workflows with new tools, then blow it away. For you DIY k8s-ers out there Docker for Whatever OS
or minikube make it pretty easy to test things out.