Every time I started a new chart from scratch, I caught myself doing the same dance: helm create, then delete the parts I don’t want, then copy a Deployment template from the previous project, tweak the labels, fix the indentation Helm just broke for me. Multiply that by a few dozen charts and you eventually write a tool. That tool is helmchart-helper.

Why not just helm create?

helm create gives you a generic NGINX-flavored chart with everything turned on: a Service, a Deployment, an Ingress, an HPA, a ServiceAccount, plus the NOTES.txt cathedral. For a real workload that’s almost never what I want. I want to pick the manifests I actually need (maybe just a CronJob and a ConfigMap), get them in a clean tree, and start filling in values.yaml.

helmchart-helper is the opposite default: empty by default, opt-in for each manifest type via a flag.

Installation

Three options, depending on taste:

# Homebrew
brew tap sgaunet/homebrew-tools
brew install sgaunet/tools/helmchart-helper

# Download a release binary from
# https://github.com/sgaunet/helmchart-helper/releases

# Or build from source
go install github.com/sgaunet/helmchart-helper@latest

Generating a chart

The minimum invocation needs a name (-n) and an output directory (-o):

helmchart-helper -n myapp -o ./charts -deploy -svc -ing

That gives you myapp/ with Chart.yaml, values.yaml, and templates for a Deployment, a Service, and an Ingress. Nothing more, nothing less.

The full set of switches mirrors the manifest you want included:

-deploy   deployment
-svc      service
-ing      ingress
-cj       cronjob
-cm       configmap
-ds       daemonset
-sts      statefulset
-hpa      horizontal pod autoscaler
-pv       volumes
-sa       serviceaccount

A CronJob with a ConfigMap and a dedicated ServiceAccount:

helmchart-helper -n nightly-report -o ./charts -cj -cm -sa

A stateful workload with persistent volumes:

helmchart-helper -n postgres-ha -o ./charts -sts -svc -pv

The generated templates use the standard {{ .Values.* }} plumbing and the conventional helpers.tpl for labels and selectors, so once the chart is created it behaves like any chart you’d hand-write.

Why I keep using it

The win isn’t that it does anything magical. It’s that it removes a small but recurring tax: I no longer reach for an old project to copy templates, and I no longer ship a chart with three manifests I forgot to delete. Pick the resources, get the skeleton, fill in values.yaml. Done.

Project status

The repo’s README is honest: this one is in low-priority maintenance mode. It works, releases happen occasionally, but don’t expect a rapid response on issues. For a tool that scaffolds files and gets out of the way, that’s fine.

Where to go next

It’s open source, MIT-licensed, and small enough that you can read it end to end in an afternoon. If helm create annoys you the way it annoys me, give it a try.