Helm on k3s
Helm installs pre-packaged apps as charts, and k3s can even manage charts for you.
Helm is the Kubernetes package manager. A chart bundles all the manifests for an app so you can install it with one command. Helm works on k3s just like anywhere else.
Two ways to use Helm with k3s
- The helm CLI — the normal way:
helm installfrom your machine. - HelmChart custom resource — k3s ships a controller that can install a chart when you apply a small YAML file, no helm binary needed.
Example
# k3s HelmChart resource: drop this in and k3s installs the chart
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: my-app
namespace: kube-system
spec:
chart: nginx
repo: https://charts.bitnami.com/bitnami
targetNamespace: default
set:
service.type: ClusterIPWhen to use it
- An operator installs cert-manager on k3s using a single helm install command instead of managing 30+ raw YAML files.
- A team uses a HelmChart custom resource to let k3s automatically pull and install a chart when the cluster boots, ensuring day-1 tooling is always present.
- A developer overrides chart values at install time with --set flags to configure a specific ingress class for the Traefik-backed k3s cluster.
More examples
Install a chart with Helm
Adds the Bitnami repo and installs Redis into a dedicated namespace with auth disabled for development.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install my-redis bitnami/redis \
--set auth.enabled=false \
--namespace cache --create-namespaceUse k3s HelmChart CRD
Drops a HelmChart manifest into the auto-deploy directory so k3s installs and manages cert-manager automatically.
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: cert-manager
namespace: kube-system
spec:
repo: https://charts.jetstack.io
chart: cert-manager
targetNamespace: cert-manager
set:
installCRDs: "true"Upgrade and rollback a release
Upgrades the Redis chart to add replicas, shows revision history, then rolls back to the previous version.
helm upgrade my-redis bitnami/redis --set replica.replicaCount=3
helm history my-redis
helm rollback my-redis 1
Discussion