OpenParable
Skip to content
← Back to skills

Generating Helm Charts

DevOps & Security
generating-helm-charts

Generating Helm Charts is an Agent Skill for devops & security published in the jeremylongshore/claude-code-plugins-plus-skills repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Execute use when generating Helm charts for Kubernetes applications. Trigger with phrases like "create Helm chart", "generate chart for app", "package Kubernetes deployment", or "helm template". Produces production-ready charts with Chart.yaml, values.yaml, templates, and best practices for multi-environment deployments.

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/HEAD/plugins/devops/helm-chart-generator/skills/generating-helm-charts/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/generating-helm-charts, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

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

ErrorCauseSolution
Chart.yaml: version is requiredMissing or malformed version fieldAdd a valid SemVer version string to Chart.yaml
parse error in templateGo template syntax error (missing end, wrong function)Run helm template . to pinpoint the error; check bracket matching and function names
dependency not foundChart dependency not downloadedRun helm dependency update to fetch dependencies into charts/
release failed: timed out waiting for conditionPods not reaching ready state during installCheck pod logs; verify image exists, resource limits are sufficient, and probes are correct
values override not appliedWrong values file path or key mismatchVerify --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