Kustomize Over Helm for Cluster Config? Sometimes.
Helm became the default for everything, including jobs it's bad at. For your own cluster configuration, Kustomize is often the calmer choice, and knowing when is the whole skill.
Helm became the default for everything, including jobs it's bad at. For your own cluster configuration, Kustomize is often the calmer choice, and knowing when is the whole skill.
Helm won the packaging war so thoroughly that teams now reach for it reflexively, including for jobs it's genuinely awkward at. For managing your own cluster configuration across environments, Kustomize is often the quieter, sturdier choice. The skill isn't picking a side forever; it's knowing which job you're doing.
Helm is a package manager. Its real strength is distributing an application
with a configurable surface: templated manifests, a values.yaml of knobs, and
versioned releases someone else can install without reading your YAML. When you
consume third-party software (ingress controllers, databases, operators), Helm
is exactly right, and you should use it.
The friction shows up when you template your own manifests. Go-templated YAML
turns readable Kubernetes objects into string soup full of {{ }}, whitespace
landmines, and conditionals that make "what does this actually render to" a real
question.
Kustomize is a patcher. You keep plain, valid manifests as a base, then
declare overlays that patch them per environment: staging bumps replicas, prod
swaps the image tag, each a small, legible diff against real YAML. Nothing is
templated; everything stays a genuine Kubernetes object you can read. It's built
into kubectl, and both Flux and Argo speak it natively.
A rule of thumb that ages well:
And they compose: a common GitOps pattern renders a third-party Helm chart, then Kustomize-patches the output to fit your cluster. You don't have to choose a religion.
The trap is treating Helm as the answer to every config question because it's the tool you already have. For first-party cluster configuration, reach for Kustomize first. Plain YAML you can read at 2 a.m. during an incident is worth more than templating cleverness you have to mentally compile.
Want this distilled for your stack? Ask the assistant for the key takeaways or related reading.
Keep reading
GitOps sounds like a platform project. Getting your first Flux reconciliation running on AKS is closer to a coffee break, and it changes how you think about deploys immediately.
Sathpal-OS