Skip to content

Get started using YAMLs

This guide walks you through setting up the Helm Operator using deployment YAMLs.


  • Kubernetes cluster >=
  • kubectl
  • (Optional) Tiller (secure setup)

Install the Helm Operator

First, install the HelmRelease Custom Resource Definition. By adding this CRD it will be possible to define HelmRelease resources on the cluster:

kubectl apply -f

Proceed to create the flux namespace, this is the namespace the Helm Operator will be deployed to:

kubectl create namespace flux

Apply the ServiceAccount, ClusterRole and ClusterRoleBinding so that the Helm Operator can access cluster resources:

kubectl apply -f

Apply the Helm Operator deployment itself:

kubectl deploy -f

Helm 3

The default deployment of the Helm Operator comes with support for Helm 2 and 3 enabled. To disable support for Helm 2 (and recover from the Tiller connection failure), patch the resource to set --enabled-helm-versions=v3:

kubectl deploy -f \
    --type='json' \
    -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--enabled-helm-versions=v3"}]'

Helm 2

The default deployment of the Helm Operator does enable support for Helm 2 but does not take any custom configurations like Tiller TLS settings into account. If your Tiller is e.g. in a different namespace than kube-system or securely setup, take a look at the available Tiller configuration flags and commented out sections in the example deployment to further tweak your Helm Operator installation.