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)
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:
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" }
Then, move stormforge.exe
to a folder defined in your Windows PATH environment variable.
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 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.