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)
  • kubectl configured 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

  1. Analyze the application: identify container images, ports, environment variables, volumes, and dependencies
  2. Scaffold the chart structure: Chart.yaml, values.yaml, templates/, charts/, .helmignore
  3. Create Chart.yaml with apiVersion: v2, name, version, appVersion, and dependency declarations
  4. Define values.yaml with sensible production defaults: replica count, image config, resource limits, ingress settings
  5. Build templates using Go template syntax with proper .Values references and _helpers.tpl for reusable named templates
  6. Add health checks: livenessProbe and readinessProbe in the deployment template with configurable paths and thresholds
  7. Configure security context: runAsNonRoot: true, readOnlyRootFilesystem: true, and drop all capabilities
  8. Create environment-specific values files: values-dev.yaml, values-staging.yaml, values-prod.yaml
  9. Add NOTES.txt with post-install instructions showing how to access the application
  10. Validate with helm lint . and test rendering with helm template . --values values-prod.yaml

Output

  • Complete Helm chart directory structure
  • Chart.yaml with metadata and dependencies
  • values.yaml with documented, configurable defaults
  • Template files: deployment.yaml, service.yaml, ingress.yaml, configmap.yaml, serviceaccount.yaml, hpa.yaml
  • _helpers.tpl with name, label, and selector helper templates
  • NOTES.txt with 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

Weekly Installs
18
GitHub Stars
1.6K
First Seen
Jan 23, 2026
Installed on
github-copilot17
codex17
amp16
gemini-cli16
kimi-cli16
cursor16