Helm Chart Generator
Generate a complete Helm chart scaffold with Chart.yaml, values.yaml, and templates/. 100% client-side — nothing leaves your browser.
Chart Metadata
Container Image
Deployment
Service
Ingress
Resources
Horizontal Pod Autoscaler
Service Account
Security Context
Pod Security Context
Container Security Context
ConfigMap
Secret
Persistence (PVC)
Health Probes
Liveness Probe
Readiness Probe
Environment Variables
Node Selector
Output Options
apiVersion: v2 name: myapp description: A Helm chart for Kubernetes type: application version: 0.1.0 appVersion: 1.0.0
Quick Recipes
Click a recipe to populate the form with a ready-to-use Helm chart configuration.
Helm Chart Guide
Helm is the package manager for Kubernetes. A Helm chart is a collection of files that describe a related set of Kubernetes resources. Charts use Go templates with values.yaml to generate Kubernetes manifests, making deployments configurable and repeatable across environments.
Chart Structure
| File | Purpose |
|---|---|
| Chart.yaml | Chart metadata (name, version, description, type) |
| values.yaml | Default configuration values (overridable at install time) |
| templates/_helpers.tpl | Named templates for name, labels, selectors |
| templates/deployment.yaml | Kubernetes Deployment with Go template directives |
| templates/service.yaml | Kubernetes Service (ClusterIP, NodePort, LoadBalancer) |
| templates/ingress.yaml | Ingress resource (conditionally rendered) |
| templates/hpa.yaml | HorizontalPodAutoscaler (conditionally rendered) |
| templates/NOTES.txt | Post-install instructions shown to the user |
Helm Workflow
Install a chart: helm install myrelease ./mychart. Override values: helm install myrelease ./mychart -f production.yaml or --set image.tag=2.0.0. Preview rendered manifests: helm template ./mychart. Upgrade: helm upgrade myrelease ./mychart. Rollback: helm rollback myrelease 1.
Go Template Syntax
| Syntax | Description |
|---|---|
| {{ .Values.key }} | Access a value from values.yaml |
| {{ include "name" . }} | Include a named template |
| {{- if .Values.enabled }} | Conditional rendering |
| {{- range .list }} | Loop over a list |
| {{- with .Values.obj }} | Change scope (use . for obj fields) |
| {{- toYaml . | nindent 4 }} | Serialize to YAML with indentation |
Best Practices
- Use _helpers.tpl — define reusable named templates for names, labels, and selectors.
- Set resource requests and limits — this ensures proper scheduling and prevents resource starvation.
- Enable security contexts — run as non-root, read-only filesystem, drop all capabilities.
- Use health probes — liveness and readiness probes ensure traffic only reaches healthy pods.
- Parameterize everything — put all configurable values in values.yaml, not hardcoded in templates.
- Version your chart and app separately — Chart.yaml
versionis the chart version,appVersionis the application version.
Privacy First
All chart generation happens entirely in your browser using JavaScript. Your chart configurations, image names, and secret data are never sent to any server. This tool has zero backend dependencies.