Learn how to install and configure StormForge Optimize Pro

There are three parts to StormForge Optimize Pro:

  • stormforge command line tool
  • StormForge Optimize Pro Controller ( runs in your cluster )
  • API (for those using the StormForge Platform)

Installing the StormForge Command Line Interface

curl -L | tar -xz && \
sudo mv stormforge /usr/local/bin/
curl -L | tar -xz && \
sudo mv stormforge /usr/local/bin/
curl -L | tar -xz && \
sudo mv stormforge /usr/local/bin/
brew install thestormforge/tap/stormforge

Installing the StormForge Optimize Pro Controller

The StormForge Optimize Pro Controller runs inside your Kubernetes cluster. We require a Cloud Native Computing Foundation certified distribution of Kubernetes, version 1.14 through 1.21. Please be sure that your kubectl can interact with your cluster before running the stormforge commands. The Controller can be configured to talk to a API for automatic tuning of your application parameters.


To authorize the Optimize Pro Controller running in your cluster, you must first prepare the necessary credentials on your workstation (i.e. where you run the stormforge program from). This can be done using a web-based form:

stormforge login

Alternatively, you can get a one-time use code to enter into a browser from another device:

stormforge login --url

At anytime you can check to see that you can communicate with the API:

stormforge ping


Our default and preferred method of installation is through our command line tool - stormforge init. This will deploy the controller, custom resource definitions, and set up necessary RBAC permissions. Using stormforge init is safe for multiple invocations.

stormforge init

You can also install the Optimize Pro Controller using helm:

helm install optimize-pro stormforge/optimize-controller --namespace stormforge-system --create-namespace -f <(stormforge generate secret -o helm)


If direct installation through stormforge is not possible, installation manifests can be generated. These manifests can then be inspected, checked into source control, or manually applied.

stormforge generate install --output-dir ./install

Upgrading, Uninstalling, and other Advanced Topics

Upgrading the StormForge Optimize Pro Controller

The preferred way to upgrade the StormForge Optimize Pro Controller is to install the latest version of stormforge locally and run stormforge init. Use stormforge version to check the current version numbers.

In some cases there may be incompatibilities between versions requiring an uninstall prior to the installation of the new version: please consult the release notes for the version you are installing.

Uninstalling the StormForge Optimize Pro Controller

To remove the StormForge Optimize Pro Controller completely from your cluster, run stormforge reset.

Ensure you have backed up any information in the cluster prior to running this command.

Advanced Installation

Controller installation involves generating manifests and applying them to your cluster using kubectl. If you have specific security requirements, or if the default RBAC configuration for the easy install is too permissive for your environment, or if you just want to inspect the manifests prior to installation, you can obtain the raw StormForge Optimize Pro Controller manifests using the stormforge command:

stormforge generate install && \
stormforge generate controller-rbac

RBAC Requirements

The StormForge Optimize Pro Controller uses Kubernetes jobs to implement trial runs along with custom resources describing the experiment and trial. The StormForge Optimize Pro Controller needs full permission to manipulate these resources. Additionally, the StormForge Optimize Pro Controller must be able to list core pods, services, and namespaces.

The exact permissions required for a particular version can be found by inspecting the output of the stormforge generate ... commands.

Last modified September 8, 2022