7 ms·
What’s wrong with helm?
by hhh 3y ago
What’s wrong with helm?
- nforgerit 3y agoIMO lots of accidental complexity with no real value (in most use cases). I saw myself disagreeing frequently with pre-defined charts and creating an own chart just for one use case is better done with kustomize. It might make sense though for a bigger org with at least several dozens of engineers to ensure certain internal standards (in which platform engineering might make sense as well).
- pirates 3y agoi think helm is “fine”, but the more i use it and get deep into some more advanced uses the more i dislike it. helm has a tendency to sprawl really fast. the ability to template any part of a manifest can lead to “if there is even a chance the default will ever be changed we should make it a template” (at my company at least). when your entire chart is “if values.thing X, else Y”, it makes it difficult to be confident about what exactly will be deployed. especially if you only have a chart and values can be inserted in many places (helmfile). without helm template it’s sometimes impossible to reason with all the meta-templates. speaking of debugging, helm template sometimes has very awful debug output and traces of where your error is. in more simple charts it’s not so bad. with library charts you can spend hours debugging, say, your deployment.yaml because it’s saying there’s an error on line 4 of the template, but line 4 is just some label or benign key, and oh finally i figured out that the deployment expects the configmap to be rendered, and the typo is in line 4 of the CM, not the deployment helm lint doesn’t catch duplicate keys? i found that one weird tools like argocd don’t like helm too much. yeah you can make it work, but flat yaml is so much simpler. and if you use helm + argo, it turns the helm into flat yaml anyway i have heavy dislike of the syntax of ‘and values.thing1 values.thing2’ in a templated line. (same with ‘or’, though this might just be a personal hangup) finally, to be positive, the one thing i really like about helm actually is the checksum function that changes a label on the deploy/sts/ds when you change config, so pods automatically roll over.