generating-helm-charts
SKILL.md
Generating Helm Charts
Overview
Generate production-ready Helm 3 charts for Kubernetes applications with Chart.yaml, values.yaml, Go templates, and helper functions. Support multi-environment deployments with values overrides, dependency management, security contexts, health probes, and resource limits following Helm best practices.
Prerequisites
- Helm 3.x installed (
helm version) kubectlconfigured with cluster access for testing chart installation- Container images available in a registry accessible from the cluster
- Understanding of application resource requirements (CPU, memory, ports, volumes)
- Chart repository access if publishing (ChartMuseum, OCI registry, or GitHub Pages)
Instructions
- Analyze the application: identify container images, ports, environment variables, volumes, and dependencies
- Scaffold the chart structure:
Chart.yaml,values.yaml,templates/,charts/,.helmignore - Create
Chart.yamlwithapiVersion: v2, name, version, appVersion, and dependency declarations - Define
values.yamlwith sensible production defaults: replica count, image config, resource limits, ingress settings - Build templates using Go template syntax with proper
.Valuesreferences and_helpers.tplfor reusable named templates - Add health checks:
livenessProbeandreadinessProbein the deployment template with configurable paths and thresholds - Configure security context:
runAsNonRoot: true,readOnlyRootFilesystem: true, and drop all capabilities - Create environment-specific values files:
values-dev.yaml,values-staging.yaml,values-prod.yaml - Add
NOTES.txtwith post-install instructions showing how to access the application - Validate with
helm lint .and test rendering withhelm template . --values values-prod.yaml
Output
- Complete Helm chart directory structure
Chart.yamlwith metadata and dependenciesvalues.yamlwith documented, configurable defaults- Template files:
deployment.yaml,service.yaml,ingress.yaml,configmap.yaml,serviceaccount.yaml,hpa.yaml _helpers.tplwith name, label, and selector helper templatesNOTES.txtwith post-install access instructions- Environment-specific values override files
Error Handling
| Error | Cause | Solution |
|---|---|---|
Chart.yaml: version is required |
Missing or malformed version field |
Add a valid SemVer version string to Chart.yaml |
parse error in template |
Go template syntax error (missing end, wrong function) |
Run helm template . to pinpoint the error; check bracket matching and function names |
dependency not found |
Chart dependency not downloaded | Run helm dependency update to fetch dependencies into charts/ |
release failed: timed out waiting for condition |
Pods not reaching ready state during install | Check pod logs; verify image exists, resource limits are sufficient, and probes are correct |
values override not applied |
Wrong values file path or key mismatch | Verify --values file path and that keys match the structure in values.yaml exactly |
Examples
- "Generate a Helm chart for a Node.js API with 3 replicas, an Nginx ingress, PostgreSQL subchart dependency, and environment-specific values for dev and prod."
- "Create a Helm chart for a stateful application with PersistentVolumeClaim, headless service, and configurable storage class."
- "Package an existing set of Kubernetes manifests into a Helm chart with parameterized image tag, replica count, and resource limits."
Resources
- Helm documentation: https://helm.sh/docs/
- Chart best practices: https://helm.sh/docs/chart_best_practices/
- Template function reference: https://helm.sh/docs/chart_template_guide/function_list/
- Artifact Hub (chart discovery): https://artifacthub.io/
Weekly Installs
18
Repository
jeremylongshore…s-skillsGitHub Stars
1.6K
First Seen
Jan 23, 2026
Security Audits
Installed on
github-copilot17
codex17
amp16
gemini-cli16
kimi-cli16
cursor16