{
  "$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"
}