Working with Helm Starters
1. Understanding Helm Starters
| Concept | Detail |
|---|---|
| What | Templates for helm create to scaffold new charts |
| Location | $(helm env HELM_DATA_HOME)/starters/ |
| Use | helm create mychart --starter STARTER_NAME |
2. Creating Starter Charts
Example: Build + install starter
# Start from default chart
helm create acme-microservice
# Customize templates, values.yaml, NOTES.txt
# Install to starters dir
mv acme-microservice "$(helm env HELM_DATA_HOME)/starters/"
3. Using Starter Templates
| Placeholder | Replaced with |
|---|---|
<CHARTNAME> | New chart name |
Chart name in Chart.yaml | Auto-replaced by helm create |
4. Organizing Starters Directory
Example: Layout
~/.local/share/helm/starters/ # HELM_DATA_HOME/starters/
├── acme-microservice/ # Standard 12-factor app
├── acme-cronjob/ # Batch job pattern
├── acme-stateful/ # StatefulSet pattern
└── acme-operator/ # Operator + CRD pattern
5. Customizing Starter Templates
| Add to starter | Why |
|---|---|
| Org-standard labels | Cost-center, team, owner |
| Default NetworkPolicy | Secure-by-default |
| Pre-configured probes | Production-ready out of the box |
| Standard NOTES.txt | Consistent post-install messaging |
6. Sharing Starter Charts
| Method | Distribution |
|---|---|
| Git repo | Clone into starters dir as part of dev setup |
| Symlink | Link team's charts repo to starters dir |
| CLI wrapper | Internal tool runs helm create --starter |
7. Implementing Organization Standards
8. Using Starter Variables
| Mechanism | Note |
|---|---|
| Built-in substitution | Only chart name (<CHARTNAME>) |
| Post-process | Run a wrapper script after helm create for more substitutions |
9. Testing Starter Charts
Example: Smoke test in CI
helm create test-chart --starter acme-microservice
helm lint test-chart
helm template test-chart | kubeconform --strict
rm -rf test-chart
10. Maintaining Starter Charts
| Practice | Detail |
|---|---|
| Version starters | Tag starter repo; document upgrade path |
| Track adopters | Inventory charts created from each starter |
| Backward-compat | Don't break naming patterns or label keys |
| Review cadence | Quarterly review for K8s API drift |