Kubernetes package manager — Charts, Repos, Releases
Helm is the package manager for Kubernetes — it bundles Kubernetes manifests into versioned charts, manages releases, and supports rollback. Works identically across Azure/AWS/GCP since it operates at the Kubernetes API level.
| Component | Description |
|---|---|
| Chart | Package of Kubernetes manifests (YAML templates + values) |
| Repository | HTTP server hosting packaged charts (.tgz) |
| Release | A running instance of a chart in a Kubernetes cluster |
| Values | Configuration overrides (values.yaml / --set) |
| Templates | Go-templated Kubernetes manifests (with {{ .Values.x }}) |
| Hooks | Lifecycle events (pre-install, post-upgrade, etc.) |
| Library Chart | Reusable chart components (no deployable templates) |
# Create a new chart helm create my-app # Lint the chart (validate syntax) helm lint ./my-app # Dry-run (render templates locally) helm template ./my-app --values values-prod.yaml # Install release helm install my-release ./my-app -n prod --create-namespace # List releases helm list -n prod # Upgrade release (new image tag) helm upgrade my-release ./my-app -n prod --set image.tag=v2.0.0 # Rollback to previous revision helm rollback my-release 1 -n prod # View release history helm history my-release -n prod # Uninstall helm uninstall my-release -n prod # Add a Helm repository helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update
appName: payments-api
replicaCount: 3
image:
repository: us-central1-docker.pkg.dev/PROJECT/repo/payments
tag: v1.0.0
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
targetPort: 8080
ingress:
enabled: true
className: gce
host: api.example.com
resources:
requests:
cpu: 250m
memory: 256Mi
limits:
cpu: 1000m
memory: 512Mi
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 70Azure Container Registry supports Helm repositories natively.
az acr helm push ./my-app-1.0.0.tgz --name myacr
ECR supports OCI artifacts. Push Helm chart as OCI artifact.
helm push ./my-app-1.0.0.tgz oci://account.dkr.ecr.region.amazonaws.com/
Artifact Registry supports Helm repositories natively.
helm push ./my-app-1.0.0.tgz oci://us-central1-docker.pkg.dev/PROJECT/helm-repo