{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreihgf5wjs5afhwh7s5yfrvpwzhewnnevd4zavm6crlnivrvsd5hkc4",
"uri": "at://did:plc:5sgu76a53rz3n6unbykmovqy/app.bsky.feed.post/3mm33jyu2zmv2"
},
"description": "Helm is to Kubernetes what apt is to Ubuntu or npm is to Node.js. Instead of maintaining dozens of raw Kubernetes YAML files for every application, you package them into a Helm Chart with templated values. A helm install command deploys the full application stack with environment-specific configuration.\n\n\nChart Structure\n\nmyapp/\n Chart.yaml # Chart metadata (name, version, description)\n values.yaml # Default configuration values\n templates/ # Kubernetes manifest templates (Go te",
"path": "/engineering-glossary/helm/",
"publishedAt": "2026-05-17T19:21:11.000Z",
"site": "https://sahilkapoor.com",
"tags": [
"Argocd",
"Kubernetes",
"Pulumi",
"Traefik"
],
"textContent": "Helm is to Kubernetes what apt is to Ubuntu or npm is to Node.js. Instead of maintaining dozens of raw Kubernetes YAML files for every application, you package them into a Helm Chart with templated values. A `helm install` command deploys the full application stack with environment-specific configuration.\n\n## Chart Structure\n\n\n myapp/\n Chart.yaml # Chart metadata (name, version, description)\n values.yaml # Default configuration values\n templates/ # Kubernetes manifest templates (Go templating)\n deployment.yaml\n service.yaml\n ingress.yaml\n _helpers.tpl # Shared template helpers\n\n## Templating\n\nHelm uses Go templating. `values.yaml` defines defaults; users override them at install time:\n\n\n # values.yaml\n replicaCount: 1\n image:\n repository: myapp\n tag: latest\n service:\n port: 80\n\n\n # In a template\n replicas: {{ .Values.replicaCount }}\n\n\n # Override at install\n helm install myapp ./myapp --set replicaCount=3 --set image.tag=v1.2.3\n\n## Chart Repository\n\nCharts are distributed via Helm repositories (OCI registries or HTTP repos). Artifact Hub (artifacthub.io) indexes community charts: nginx-ingress, cert-manager, Prometheus, Grafana, Argocd, and hundreds more. Instead of writing your own Kubernetes configs for open-source software, you install the community Helm chart and override values.\n\n## Helm Releases\n\nEach `helm install` creates a named Release tracked by Helm in a Kubernetes Secret (release history). `helm upgrade` applies changes; `helm rollback` reverts to a previous revision. This gives you deployment history and one-command rollback without any additional tooling.\n\n## Helm with ArgoCD\n\nArgocd natively understands Helm charts, point an ArgoCD Application at a Helm chart repo and values file, and ArgoCD handles the sync. You get GitOps (values files in Git) + packaging (Helm) + delivery (ArgoCD) in a clean pipeline.\n\n## Helm vs Kustomize\n\n * **Helm** , templating with Go templates; packaging with repositories; good for distributing to others\n * **Kustomize** , overlay-based patching (no templates); built into kubectl; better for organization-internal config management\n\n\n\nMany teams use both: a Helm chart for the application skeleton, Kustomize overlays for environment-specific patches.\n\n## Related Terms\n\n * Argocd, GitOps delivery that deploys Helm charts\n * Kubernetes, the platform Helm manages resources on\n * Pulumi, can deploy Helm charts via the Pulumi Helm provider\n * Traefik, commonly deployed via Helm as a Kubernetes Ingress Controller\n\n",
"title": "Helm",
"updatedAt": "2026-05-18T20:03:18.465Z"
}