Install
4 minute read
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:
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:
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:
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.