Upgrade Advisory

This documentation is for Flux (v1) and Helm Operator (v1). Both projects are in maintenance mode and will soon reach end-of-life. We strongly recommend you familiarise yourself with the newest Flux and start looking at your migration path.

For documentation regarding the latest Flux, please refer to this section.

Get started using Helm

This guide walks you through setting up the Helm Operator using the available Helm chart.


Install the Helm Operator chart

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

kubectl apply -f https://raw.githubusercontent.com/fluxcd/helm-operator/1.4.1/deploy/crds.yaml

Using helm, add the Flux Helm repository:

helm repo add fluxcd https://charts.fluxcd.io

Install the Helm Operator using the available Helm chart:

helm upgrade -i helm-operator fluxcd/helm-operator \
    --set helm.versions=v3

Confirm the Helm Operator deployed successfully:

$ helm status helm-operator
NAME: helm-operator
LAST DEPLOYED: Wed Jan 01 12:00:00 2020
NAMESPACE: default
STATUS: deployed
$ kubectl get pods
NAME                             READY   STATUS    RESTARTS   AGE
helm-operator-6985656995-dpmdl   1/1     Running   0          31s

With Tiller (Helm 2)

Make sure your Tiller installation is secure, and create a secret for the client certificates:

kubectl create secret tls helm-client-certs \
    --cert=cert.pem \

Install (or upgrade) the Helm Operator with the Tiller configuration while also enabling Helm 2 support:

helm upgrade -i helm-operator fluxcd/helm-operator \
    --set tillerNamespace=kube-system \
    --set tls.enable=true \
    --set helm.versions="v2\,v3"

Confirm the Helm Operator deployed successfully and connected to Tiller:

$ kubectl get pods
NAME                             READY   STATUS    RESTARTS   AGE
helm-operator-7cc7c798cc-kn26w   1/1     Running   0          18s
$ kubectl logs -f deploy/helm-operator
ts=2020-01-01T12:00:00.556712443Z caller=helm.go:71 component=helm version=v2 info="connected to Tiller" version="sem_ver:\"v2.16.3\" git_commit:\"1ee0254c86d4ed6887327dabed7aa7da29d7eb0d\" git_tree_state:\"clean\" " host=tiller-deploy.kube-system:44134 options="{Host: Port: Namespace:kube-system TLSVerify:false TLSEnable:true TLSKey:/etc/fluxd/helm/tls.key TLSCert:/etc/fluxd/helm/tls.crt TLSCACert: TLSHostname:}"