stepscale installs as a Kubernetes operator in your own cluster. It reads your HPAs and KEDA ScaledObjects, analyzes the metrics, and writes recommendations you review with kubectl. Nothing is applied until you approve it and turn on apply mode. Metrics, analysis, and any applied change stay in your account.
The operator watches your HorizontalPodAutoscalers and KEDA ScaledObjects and reads the real metrics from metrics-server or Prometheus over a rolling window.
A deterministic rule engine flags candidates: floors idle 24/7, CPU targets set too low, autoscalers that thrash, and scale-up that lags traffic.
An LLM, on your own OpenAI or Anthropic key, reviews each candidate: whether to act, a risk rating, plain-language reasoning, and a savings estimate. No key means rule-based output instead.
Results are written as ScalingRecommendation custom resources you read and diff with kubectl. This is the default, and it never changes a workload.
With a license, you approve a recommendation and the operator patches the target, holds it on a probation window, and rolls back automatically if health regresses.
Idle floors, over-provisioned targets, thrashing, and scale-up lag. Each candidate explains the evidence behind it.
Bring your own OpenAI or Anthropic key, point at a proxy or local model, or run rules-only with no LLM at all.
For genuinely periodic workloads, forecast recurring peaks and pre-scale the floor ahead of them. Off until validated for your workload.
Reads and patches HorizontalPodAutoscalers and KEDA ScaledObjects. A KEDA workload gets one recommendation, not two.
Applied changes run on probation; the operator verifies workload health and auto-reverts a change that degrades it.
The license is verified offline with no phone-home, and rules-only mode needs no external model. Mirror the signed image and chart internally.
One helm install, your own LLM key, recommendations in about 30 minutes once metrics are flowing. No login, no license.