3 minute read
There are three parts to StormForge Optimize:
stormforgecommand line tool
- StormForge Optimize Controller ( runs in your cluster )
- API (for those using the StormForge Optimize Platform)
Installing the StormForge Optimize Tool
$ curl -L https://app.stormforge.io/downloads/stormforge-linux-amd64.tar.gz | tar -xz && \ sudo mv stormforge /usr/local/bin/
$ curl -L https://app.stormforge.io/downloads/stormforge-darwin-amd64.tar.gz | tar -xz && \ sudo mv stormforge /usr/local/bin/
$ curl -L https://app.stormforge.io/downloads/stormforge-darwin-arm64.tar.gz | tar -xz && \ sudo mv stormforge /usr/local/bin/
$ brew install thestormforge/tap/stormforge
Binaries can also be downloaded directly through your browser for the following platforms:
Installing the StormForge Optimize Controller
The StormForge Optimize Controller runs inside your Kubernetes cluster. It can be configured to talk to a API for automatic tuning of your application parameters.
To authorize the Optimize 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 -
This will deploy the controller, custom resource definitions, and set up necessary RBAC permissions.
stormforge init is safe for multiple invocations.
$ stormforge init
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
NoteThere will be sensitive information in the
stormforge-system/secret_optimize-manager.yaml. Make sure to keep this in mind when storing these manifests.
Upgrading, Uninstalling, and other Advanced Topics
Upgrading the StormForge Optimize Controller
The preferred way to upgrade the StormForge Optimize 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 Controller
To remove the StormForge Optimize Controller completely from your cluster, run
NoteRunning the reset command will also remove all of the StormForge Optimize data that is present in your cluster. StormForge Optimize data that has been sent to the StormForge Optimize Platform will persist after a reset.
Ensure you have backed up any information in the cluster prior to running this command.
Controller installation involves generating manifests and applying them to your cluster using
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 Controller manifests using the
$ stormforge generate install && \ stormforge generate controller-rbac
The StormForge Optimize Controller uses Kubernetes jobs to implement trial runs along with custom resources describing the experiment and trial. The StormForge Optimize Controller needs full permission to manipulate these resources. Additionally, the StormForge Optimize 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.