Helm Charts
Helm is the package manager for Kubernetes. It simplifies deploying and managing complex applications by bundling Kubernetes manifests into reusable charts.
Helm Chart Structure
mychart/
โโโ Chart.yaml # Chart metadata
โโโ values.yaml # Default configuration values
โโโ templates/
โ โโโ deployment.yaml
โ โโโ service.yaml
โ โโโ ingress.yaml
โ โโโ configmap.yaml
โ โโโ _helpers.tpl # Template helpers
โโโ README.md
Chart.yaml
apiVersion: v2
name: myapp
description: My application Helm chart
type: application
version: 0.1.0 # Chart version
appVersion: "1.0.0" # Application version
dependencies:
- name: postgresql
version: "12.x.x"
repository: "https://charts.bitnami.com/bitnami"
values.yaml
replicaCount: 3
image:
repository: myapp
tag: "latest"
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
ingress:
enabled: true
hosts:
- host: myapp.example.com
paths:
- path: /
pathType: Prefix
resources:
limits:
cpu: 500m
memory: 256Mi
requests:
cpu: 250m
memory: 128Mi
Helm Commands
# Install a chart
helm install myrelease bitnami/nginx
# Install with custom values
helm install myrelease ./mychart -f custom-values.yaml
# Upgrade a release
helm upgrade myrelease ./mychart --set replicaCount=5
# Rollback
helm rollback myrelease 1
# List releases
helm list
# Uninstall
helm uninstall myrelease