# Helm Charts — Kubernetes

Source: https://www.skillbyai.com/en/kubernetes/p-helm

> Packages with templates and versions.

## Install and configure third-party software

**Helm** packages Kubernetes manifests as **charts**: templated YAML plus a `values.yaml` of settings, with versioned releases you can upgrade and roll back. It is the common way to install third-party software (ingress controllers, monitoring stacks, databases). For your own apps, Helm or Kustomize both work; Kustomize stays closer to plain YAML, Helm is better when you need to distribute a configurable package. Always pin chart versions and review values.

## Installing a chart (sketch)

Typical commands; need a cluster and network access. Not run here.

```bash
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm upgrade --install ingress ingress-nginx/ingress-nginx \
  --namespace ingress --create-namespace \
  --version 4.11.3 \
  -f values-prod.yaml
helm history ingress -n ingress
helm rollback ingress 1 -n ingress
```

## Render before installing

Run helm template with your values and read the output; charts can create more (and more privileged) resources than you expect.

**Quiz:** When is Helm especially useful?

- [ ] Building container images
- [ ] Writing a single Pod by hand
- [ ] Replacing kubectl entirely
- [x] Installing and upgrading configurable third-party software packages

*Answer:* Installing and upgrading configurable third-party software packages. Charts package configurable installs.
