Manual Install

Learn how to install and configure StormForge Optimize Live manually using Helm

Prerequisites

Installation

The StormForge Optimize Live Controller runs inside your Kubernetes cluster. For a manual installation, the StormForge CLI tool is used to authenticate and generate credentials for the controller to use, and Helm is used to install and configure the controller components.

StormForge CLI

You will need to register a new cluster and retrieve credentials for it using the StormForge CLI prior to installing the StormForge Optimize Live controller with Helm.

You can download and install using:

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.

Make sure that your version is v3.0.0+ by running stormforge version. Then login using a web-based form:

stormforge login

Cluster and Credentials

The StormForge CLI is used to register the new cluster, and output the required credentials that the controller will need.

Register a new cluster, and save the output to a credential-values.yaml file:

stormforge create cluster my-cluster-name \
  --with-registry-credentials > credential-values.yaml

The values file will be used in the next step, when we install the controller using Helm.

Metrics Provider

StormForge Optimize Live supports either Prometheus or Datadog as its metrics provider. Create and save a metrics-provider-values.yaml file for the provider of your choice. Examples provided below.

# metrics-provider-values.yaml
---
metricsURL: <YOUR_PROMETHEUS_SERVER_URL>
# metrics-provider-values.yaml
---
extraEnvVars:
- name: DD_API_KEY
  value: <YOUR_DATADOG_API_KEY>
- name: DD_APP_KEY
  value: <YOUR_DATADOG_APP_KEY>
- name: DD_CLUSTER_NAME
  value: <YOUR_DATADOG_CLUSTER_NAME>

Optimize Live Controller

Install the Optimize Live Controller in the stormforge-system namespace. Make sure you’ve provided the appropriate values files for for the cluster’s credentials and metrics provider configuration.

helm install optimize-live optimize-live \
  --repo https://registry.stormforge.io/chartrepo/library/ \
  --atomic \
  --namespace stormforge-system \
  --create-namespace \
  --values credential-values.yaml \
  --values metrics-provider-values.yaml

Customizing Installation

In cases where you would need to generate and manually apply the manifests, you can generate them and output them to a ./optimize-live/ directory using helm template:

helm template optimize-live optimize-live \
  --repo https://registry.stormforge.io/chartrepo/library/ \
  --namespace stormforge-system \
  --include-crds \
  --values credential-values.yaml \
  --values metrics-provider-values.yaml \
  --output-dir .
Last modified October 25, 2022