Installing Fission

Welcome! This guide will get you up and running with Fission on a Kubernetes cluster.

Cluster preliminaries

If you don’t have a Kubernetes cluster, here’s a quick guide to set one up.

First, let’s ensure you have the Kubernetes CLI and Helm installed and ready. If you already have helm, skip ahead to the fission install.

If you cannot (or don’t want to) use Helm, there is an alternative installation method possible; see installing without Helm..

Kubernetes CLI

Ensure you have the Kubernetes CLI.

You can get the Kubernetes CLI for OSX like this:

$ curl -LO$(curl -s && chmod +x kubectl && sudo mv kubectl /usr/local/bin

Or, for Linux:

$ curl -LO$(curl -s && chmod +x kubectl && sudo mv kubectl /usr/local/bin

Next, ensure you have access to a cluster. Do this by using kubectl to check your Kubernetes version:

$ kubectl version

We will need at least Kubernetes 1.6.

Set up Helm

Helm is an installer for Kubernetes. If you already use helm, skip to the next section.

To install Helm, first you’ll need the helm CLI:

On OS X:

$ curl -LO

$ tar xzf helm-v2.11.0-darwin-amd64.tar.gz

$ mv darwin-amd64/helm /usr/local/bin

On Linux:

$ curl -LO

$ tar xzf helm-v2.11.0-linux-amd64.tar.gz

$ mv linux-amd64/helm /usr/local/bin

Next, install the Helm server on your Kubernetes cluster. Before you do that, you have to give helm’s server privileges to install software on your cluster.

For example, you can use the following steps to install helm using a dedicated service account with full cluster admin privileges.

$ kubectl create serviceaccount --namespace kube-system tiller

$ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller

$ helm init --service-account tiller

Or, if your cluster is already set up with a permissive service account (this varies by version and how your Kubernetes was installed), you can simply do:

$ helm init

Install Fission (if you have helm)

List of all supported configurations for the charts fission-all and fission-core can be found here


Since minikube 0.26.0 the default bootstrapper is kubeadm which enables RBAC by default. For those who work on versions before 0.26.0, please follow the steps below to enable RBAC.

# For minikube before version 0.26.0
$ minikube start --extra-config=apiserver.Authorization.Mode=RBAC

Then, you should see the cluster role cluster-admin.

$ kubectl get clusterroles cluster-admin
NAME            AGE
cluster-admin   44d

Install fission with helm

$ helm install --name fission --namespace fission --set serviceType=NodePort,routerServiceType=NodePort

The serviceType variable allows configuring the type of Kubernetes service outside the cluster. You can use ClusterIP if you don’t want to expose anything outside the cluster.

Cloud hosted clusters (GKE, AWS, Azure etc.)

You may need to add token to ~/.kube/config manually or different steps for connecting kubernetes cluster based on the platform you use.

  1. GKE:
  2. AWS:
  3. Azure:
$ helm install --name fission --namespace fission

Minimal version

The fission-all helm chart installs a full set of services including the NATS message queue, influxDB for logs, etc. If you want a more minimal setup, you can install the fission-core chart instead:

$ helm install --name fission --namespace fission

Install Fission – alternative method without helm

This method uses kubectl apply to install Fission. You can edit the YAML file before applying it to your cluster, if you want to change anything in it.

Choose one of the following commands to run:

# Full Fission install, cloud hosted cluster:
$ kubectl apply -f

# Full install on minikube:
$ kubectl apply -f

# Minimal install on cloud hosted cluster:
$ kubectl apply -f

# Minimal install on minikube:
$ kubectl apply -f

Next, install the Fission CLI.

Install the Fission CLI


Get the CLI binary for Mac:

$ curl -Lo fission && chmod +x fission && sudo mv fission /usr/local/bin/


$ curl -Lo fission && chmod +x fission && sudo mv fission /usr/local/bin/


For Windows, you can use the linux binary on WSL. Or you can download this windows executable: fission.exe

Run an example

Finally, you’re ready to use Fission!

$ fission env create --name nodejs --image fission/node-env:1.4.1

$ curl -LO

$ fission function create --name hello --env nodejs --code hello.js

$ fission function test --name hello
Hello, world!

For more language tutorials, visit Language.

What’s next?

If something went wrong, we’d love to help – please drop by the slack channel and ask for help.

Check out the examples for some example functions.