Install

Learn how to install and configure StormForge Optimize Pro

StormForge Optimize Pro is composed of three parts:

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

Installing the StormForge Command Line Interface

Linux Binary Download:

Amd64 | Arm64


Linux install command:

# Automatically selects either AMD64 or ARM64 architecture, downloads
# the appropriate binary, then moves it to a location in PATH
{ [ "$(uname -sm)" = "Linux x86_64"  ] && curl -L https://downloads.stormforge.io/stormforge-cli/latest/stormforge_linux_amd64.tar.gz | tar -xz; } ||
{ [ "$(uname -sm)" = "Linux aarch64" ] && curl -L https://downloads.stormforge.io/stormforge-cli/latest/stormforge_linux_arm64.tar.gz | tar -xz; } &&
sudo mv stormforge /usr/local/bin/

Windows Binary Download:

Amd64 | Arm64


PowerShell install command:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
If ($env:PROCESSOR_ARCHITECTURE -eq "AMD64") { Invoke-WebRequest -Uri "https://downloads.stormforge.io/stormforge-cli/latest/stormforge_windows_amd64.zip" -Outfile "stormforge.zip" }
If ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { Invoke-WebRequest -Uri "https://downloads.stormforge.io/stormforge-cli/latest/stormforge_windows_arm64.zip" -Outfile "stormforge.zip" }
Expand-Archive "stormforge.zip" "." -WarningVariable $w; if ($w.Count -eq 0) { Remove-Item "stormforge.zip" }
# Move-Item "stormforge.exe" "C:\somewhere-in-your-PATH\stormforge.exe"

macOS Binary Download:

Amd64 | Arm64


macOS install command:

# Automatically selects either AMD64 or ARM64 architecture, downloads
# the appropriate binary, then moves it to a location in PATH
{ [ "$(uname -sm)" = "Darwin x86_64" ] && curl -L https://downloads.stormforge.io/stormforge-cli/latest/stormforge_darwin_amd64.tar.gz | tar -xz; } ||
{ [ "$(uname -sm)" = "Darwin arm64"  ] && curl -L https://downloads.stormforge.io/stormforge-cli/latest/stormforge_darwin_arm64.tar.gz | tar -xz; } &&
sudo mv stormforge /usr/local/bin/

Homebrew:

brew install thestormforge/tap/stormforge

We provide a container image at registry.stormforge.io/library/stormforge-cli (for linux/amd64 and linux/arm64):

docker pull registry.stormforge.io/library/stormforge-cli

We recommend setting the STORMFORGE_TOKEN environment variable (from auth new-token) if you want to use the container image directly.

Installing the StormForge Optimize Pro Controller

The StormForge Optimize Pro Controller runs inside your Kubernetes cluster. Make sure you have a Cloud Native Computing Foundation certified distribution of Kubernetes, version 1.16 or later. Also, make sure that your kubectl can interact with your cluster before running stormforge commands. The Controller can be configured to communicate with an API for automatic tuning of your application parameters.

Login

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). You can do this via 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 any time, you can check to see that you can communicate with the API:

stormforge ping

Install

The default (and preferred) method of installation is via the command-line tool, stormforge install. This will deploy the controller, custom resource definitions, and set up necessary role-based access control (RBAC) permissions. Using stormforge install is safe for multiple invocations.

stormforge install optimize-pro

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 install.

To check what version of Optimize Pro is currently installed on your cluster, run:

$ stormforge check optimize-pro
Success, Optimize Pro version v2.1.6.

To see which version of the StormForge CLI and Optimize Pro will be deployed when you run stormforge install, run:

% stormforge version --output all
stormforge version 3.0.0
Optimize Pro version v2.1.7
Optimize Live version v0.5.0

In some cases there may be incompatibilities between Optimize Pro versions, requiring you to uninstall before installing the new version. Check the release notes for the version you want to install.

Uninstalling the StormForge Optimize Pro Controller

Be sure to back up any information in the cluster before uninstalling the StormForge Optimize Pro Controller.

To remove the Controller from your cluster, run:

stormforge uninstall optimize-pro

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.

You can find the exact permissions required for a particular version by inspecting the source of the Helm chart. See manual install.

Last modified January 10, 2023