Installing helm charts reproducibly can be a bit of a pain. To make this easier, you can use the K3S Helm Controller preinstalled in your cluster. This allows you to declaratively specify helm charts and apply them like normal Kubernetes resources. The controller will then deploy the helm chart for you.
Let’s say you want to deploy the Traefik ingress controller using helm. You can deploy a yaml like so:
apiVersion: v1
kind: Namespace
metadata:
name: traefik-v2
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: traefik
namespace: kube-system
spec:
repo: https://traefik.github.io/charts
chart: traefik
targetNamespace: traefik-v2
This will deploy the Traefik ingress to your cluster. For more information please check the K3S docs.