Working with Helm Starters

1. Understanding Helm Starters

ConceptDetail
WhatTemplates for helm create to scaffold new charts
Location$(helm env HELM_DATA_HOME)/starters/
Usehelm 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

PlaceholderReplaced with
<CHARTNAME>New chart name
Chart name in Chart.yamlAuto-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 starterWhy
Org-standard labelsCost-center, team, owner
Default NetworkPolicySecure-by-default
Pre-configured probesProduction-ready out of the box
Standard NOTES.txtConsistent post-install messaging

6. Sharing Starter Charts

MethodDistribution
Git repoClone into starters dir as part of dev setup
SymlinkLink team's charts repo to starters dir
CLI wrapperInternal tool runs helm create --starter

7. Implementing Organization Standards

8. Using Starter Variables

MechanismNote
Built-in substitutionOnly chart name (<CHARTNAME>)
Post-processRun 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

PracticeDetail
Version startersTag starter repo; document upgrade path
Track adoptersInventory charts created from each starter
Backward-compatDon't break naming patterns or label keys
Review cadenceQuarterly review for K8s API drift