Getting tired of Helm – any better way to handle deployments in Kubernetes?
I’ve been deep in Helm templates lately and it’s starting to feel like YAML hell.
It was fine when we had a few services, but now it’s just hard to manage.
Anyone found a workflow that avoids Helm altogether? Or made Helm manageable at scale?
Kustomize is easier to manage at scale, but some upfront effort is required. Many charts are distributed as Helm packages, so you’ll often need to export them as raw YAML manifests. In an ideal setup, ArgoCD combined with Kustomize should cover most deployment needs. However, depending on your workflow, you may eventually need a way to dynamically replace variables. If the built-in tools in recent Kustomize versions aren’t sufficient, consider using envsubst as a fallback.
For complex stuff I write Python or Go programs to build manifests, then shell out to kubectl apply. An old example - deploying a multi-instance modded Arma 3 server on k3s: https://github.com/dharmab/homelab-k3s/tree/main/lab
there's also https://timoni.sh/ if you want a helm-like experience, but with cue instead of templating.
If you're working with upstream projects, unfortunately many of them will only provide helm charts, so you got to decide between rewriting them to suit your env/tool, or just live with the crappiness of helm.
I've been working on improving a tool called kr8+, which uses jsonnet to combine cluster config and apply it to components: https://github.com/ice-bergtech/kr8
Yeah the whole 'git repo = helm chart' just does not feel great at all. As we all know, the only thing worse is not using helm and having to deal with writing all those service, pv, pvc, ingress yaml files individually :)
(Not that I haven't had the need, I've use jsonnet with libk8s at scale. But if you're asking the question this simply, you probably don't need it)
For complex stuff I write Python or Go programs to build manifests, then shell out to kubectl apply. An old example - deploying a multi-instance modded Arma 3 server on k3s: https://github.com/dharmab/homelab-k3s/tree/main/lab
i like generating k8s yaml with cue, example: https://github.com/cue-labs/cue-by-example/tree/main/003_kub...
there's also https://timoni.sh/ if you want a helm-like experience, but with cue instead of templating.
If you're working with upstream projects, unfortunately many of them will only provide helm charts, so you got to decide between rewriting them to suit your env/tool, or just live with the crappiness of helm.
https://github.com/carvel-dev/carvel
works really well
https://github.com/mkubaczyk/helmsman