| name | helm-charts |
| user-invocable | false |
| description | Use when understanding and creating Helm charts for packaging and deploying Kubernetes applications. |
| allowed-tools | [] |
Helm Charts
Understanding and creating Helm charts for Kubernetes applications.
Chart Structure
mychart/
├── Chart.yaml # Chart metadata
├── values.yaml # Default values
├── charts/ # Chart dependencies
├── templates/ # Template files
│ ├── NOTES.txt # Usage notes
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── _helpers.tpl # Template helpers
│ └── tests/ # Test files
└── .helmignore # Files to ignore
Chart.yaml
apiVersion: v2
name: my-app
user-invocable: false
description: A Helm chart for my application
type: application
version: 1.0.0
appVersion: "1.0.0"
keywords:
- web
- api
maintainers:
- name: Your Name
email: you@example.com
dependencies:
- name: postgresql
version: "12.1.0"
repository: "https://charts.bitnami.com/bitnami"
condition: postgresql.enabled
values.yaml
replicaCount: 3
image:
repository: myapp
pullPolicy: IfNotPresent
tag: "1.0.0"
service:
type: ClusterIP
port: 80
ingress:
enabled: false
className: "nginx"
hosts:
- host: myapp.local
paths:
- path: /
pathType: Prefix
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
autoscaling:
enabled: false
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 80
Common Commands
Create Chart
helm create mychart
Install Chart
helm install myrelease ./mychart
helm install myrelease ./mychart -f custom-values.yaml
helm install myrelease ./mychart --set image.tag=2.0.0
Upgrade Chart
helm upgrade myrelease ./mychart
helm upgrade --install myrelease ./mychart
Validate Chart
helm lint ./mychart
helm install myrelease ./mychart --dry-run --debug
helm template myrelease ./mychart
Manage Releases
helm list
helm status myrelease
helm get values myrelease
helm rollback myrelease 1
helm uninstall myrelease
Dependencies
Chart.yaml
dependencies:
- name: redis
version: "17.0.0"
repository: "https://charts.bitnami.com/bitnami"
condition: redis.enabled
tags:
- cache
Update Dependencies
helm dependency update ./mychart
helm dependency build ./mychart
helm dependency list ./mychart
Chart Repositories
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm search repo nginx
helm search hub wordpress
Best Practices
Version Conventions
- Chart version: Semantic versioning (1.2.3)
- App version: Application version (v1.0.0)
Default Values
Provide sensible defaults in values.yaml:
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi
config: {}
env: {}
Documentation
Include NOTES.txt for post-installation instructions:
Thank you for installing {{ .Chart.Name }}.
Your release is named {{ .Release.Name }}.
To learn more about the release, try:
$ helm status {{ .Release.Name }}
$ helm get all {{ .Release.Name }}