On this page you will install the Stackable Spark-on-Kubernetes operator as well as the Commons and Secret operators which are required by all Stackable operators.


Spark applications almost always require dependencies like database drivers, REST api clients and many others. These dependencies must be available on the classpath of each executor (and in some cases of the driver, too). There are multiple ways to provision Spark jobs with such dependencies: some are built into Spark itself while others are implemented at the operator level. In this guide we are going to keep things simple and look at executing a Spark job that has a minimum of dependencies.

More information about the different ways to define Spark jobs and their dependencies is given on the following pages:

Stackable Operators

There are 2 ways to install Stackable operators

  1. Using stackablectl

  2. Using a Helm chart


stackablectl is the command line tool to interact with Stackable operators and our recommended way to install Operators. Follow the installation steps for your platform.

After you have installed stackablectl run the following command to install the Spark-k8s operator:

stackablectl operator install \
  commons=23.7.0 \
  secret=23.7.0 \

The tool will show

[INFO ] Installing commons operator
[INFO ] Installing secret operator
[INFO ] Installing spark-k8s operator
Consult the Quickstart to learn more about how to use stackablectl. For example, you can use the -k flag to create a Kubernetes cluster with kind.


You can also use Helm to install the operator. Add the Stackable Helm repository:

helm repo add stackable-stable

Then install the Stackable Operators:

helm install --wait commons-operator stackable-stable/commons-operator --version 23.7.0
helm install --wait secret-operator stackable-stable/secret-operator --version 23.7.0
helm install --wait spark-k8s-operator stackable-stable/spark-k8s-operator --version 23.7.0

Helm will deploy the operators in a Kubernetes Deployment and apply the CRDs for the SparkApplication (as well as the CRDs for the required operators). You are now ready to create a Spark job.

What’s next

Execute a Spark Job and verify that it works by inspecting the pod logs.