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)

Prerequisites

  • Kubernetes version 1.19 or later. Optimize Pro might not work as expected with earlier Kubernetes versions.
  • Helm version 3.8 or later
  • kubectl properly configured for your cluster

Install the StormForge CLI tool

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" } 

Then, move stormforge.exe to a folder defined in your Windows PATH environment variable.

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 create -o token) if you want to use the container image directly.

Install the StormForge Optimize Pro Controller

The StormForge Optimize Pro Controller runs inside your Kubernetes cluster. The Controller can be configured to communicate with an API for automatic tuning of your application parameters.

Log in

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 Optimize Pro Controller

The default (and preferred) method of installation is via the Helm chart. 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.

helm template optimize-pro oci://registry.stormforge.io/library/optimize-pro \
  --namespace stormforge-system \
  --include-crds \
  --values credential-values.yaml \
  --output-dir .

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 via the Helm chart, as described above.

To see which version of Optimize Pro is currently installed on your cluster, run:

$ stormforge check optimize-pro

The output will look something like this:

Success, Optimize Pro version v3.2.0.

In some cases, incompatibilities between Optimize Pro versions require 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 May 26, 2023