Install
3 minute read
Prerequisites
- Cloud Native Computing Foundation certified distribution of Kubernetes, version 1.16 or later
- Supported Metrics source (Prometheus or Datadog) along with Kube State Metrics
- kubectl properly configured for your cluster
- StormForge Command Line Interface Tool (v3.0.0+)
- StormForge Account
Installation
The StormForge Optimize Live Controller runs inside your Kubernetes cluster. It is installed and managed using the StormForge CLI tool.
StormForge CLI
The StormForge CLI is used to authenticate, retrieve credentials, register, and install the controller on your Kubernetes cluster.
You can download and install the CLI tool using:
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.
Make sure that your version is v3.0.0+ by running stormforge version
.
Then log in using a web-based form:
stormforge login
Optimize Live Controller
To install the StormForge Optimize Live Controller on your cluster, use the stormforge install
command. This will install the Optimize Live Controller in the stormforge-system
namespace and register the new cluster with StormForge.
Before running the command, you will need to choose a metrics provider: either Prometheus or Datadog.
Configure 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; then, add the following key-value pairs shown below, replacing the placeholder values.
Configure the metricsURL:
# metrics-provider-values.yaml
---
metricsURL: PROMETHEUS_SERVER_URL
For details about setting these and other variables, see the StormForge Datadog integration reference page.
Note: DD_SITE
defaults to datadoghq.com
. Specify the value for the Datadog parameter site you’re using.
# metrics-provider-values.yaml
---
extraEnvVars:
- name: DD_API_KEY
value: DATADOG_API_KEY
- name: DD_APP_KEY
value: DATADOG_APP_KEY
- name: DD_CLUSTER_NAME
value: DATADOG_CLUSTER_NAME
- name: DD_SITE
value: DATADOG_SITE_PARAMETER
To avoid hitting query rate limits, consider adding the following key-value pairs to reduce the backfill of older data and adjust the rate at which Optimize Live fetches new data from Datadog.
# metrics-provider-values.yaml
---
extraEnvVars:
- name: TSDB_BACKFILL_DURATION
value: "0s"
- name: TSDB_INTERVAL
value: "30m"
Install Controller
Using the metrics provider configuration file created in the previous step, use stormforge install
to deploy the configuration:
stormforge install optimize-live \
--values metrics-provider-values.yaml
Next Steps
You are now ready to optimize your first application by following our configuration guide.