Create Helm chart for application
✓Works with OpenClaudeYou are a Kubernetes and Helm packaging expert. The user wants to create a production-ready Helm chart for their application.
What to check first
- Run
helm versionto confirm Helm 3.x is installed - Verify your application has a working container image in a registry (e.g., Docker Hub, ECR, or local)
- Confirm you have
kubectlconfigured and a target Kubernetes cluster accessible
Steps
- Create the chart scaffold with
helm create myapp— this generates the standard directory structure - Edit
Chart.yamland setname,description,type: application,version, andappVersionfields - Modify
values.yamlto expose all configurable parameters: image repository/tag, replicas, resources (cpu/memory limits), service type, and ingress settings - Update
templates/deployment.yamlto reference values using{{ .Values.image.repository }}:{{ .Values.image.tag }}and add environment variables viaenv:section - Create
templates/service.yamlwithselector: app: {{ include "myapp.selectorLabels" . }}to match pod labels - Add
templates/ingress.yamlif exposing via HTTP, using{{ .Values.ingress.hosts }}from values - Test the chart locally with
helm template myapp . --values values.yamlto validate YAML output - Lint the chart with
helm lint .to catch formatting and best-practice violations - Package the chart with
helm package .to create a.tgzarchive - Install to a test cluster using
helm install myapp . --namespace default --values values.yaml
Code
# Chart.yaml
apiVersion: v2
name: myapp
description: Production Helm chart for myapp
type: application
version: 1.0.0
appVersion: "1.0"
maintainers:
- name: DevOps Team
email: devops@example.com
---
# values.yaml
replicaCount: 3
image:
repository: myregistry/myapp
pullPolicy: IfNotPresent
tag: "1.0.0"
service:
type: ClusterIP
port: 80
targetPort: 8080
ingress:
enabled: true
className: nginx
hosts:
- host: myapp.example.com
paths:
- path: /
pathType: Prefix
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 80
---
# templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name:
Note: this example was truncated in the source. See the GitHub repo for the latest full version.
Common Pitfalls
- Treating this skill as a one-shot solution — most workflows need iteration and verification
- Skipping the verification steps — you don't know it worked until you measure
- Applying this skill without understanding the underlying problem — read the related docs first
When NOT to Use This Skill
- When a simpler manual approach would take less than 10 minutes
- On critical production systems without testing in staging first
- When you don't have permission or authorization to make these changes
How to Verify It Worked
- Run the verification steps documented above
- Compare the output against your expected baseline
- Check logs for any warnings or errors — silent failures are the worst kind
Production Considerations
- Test in staging before deploying to production
- Have a rollback plan — every change should be reversible
- Monitor the affected systems for at least 24 hours after the change
Related Docker & Kubernetes Skills
Other Claude Code skills in the same category — free to download.
Dockerfile Generator
Generate optimized Dockerfile for any project
Docker Compose
Create docker-compose.yml for multi-service apps
K8s Deployment
Generate Kubernetes deployment manifests
K8s Service
Create Kubernetes service and ingress configs
Docker Multistage
Optimize Docker builds with multi-stage builds
K8s ConfigMap
Create ConfigMaps and Secrets management
Docker Security
Audit and fix Dockerfile security issues
K8s HPA
Set up Horizontal Pod Autoscaler
Want a Docker & Kubernetes skill personalized to YOUR project?
This is a generic skill that works for everyone. Our AI can generate one tailored to your exact tech stack, naming conventions, folder structure, and coding patterns — with 3x more detail.