# StormForge > Kubernetes resource optimization using machine learning. StormForge observes workload metrics and generates CPU/memory rightsizing recommendations to reduce cloud spend and improve workload reliability — without manual tuning. StormForge installs two components on your Kubernetes clusters: an **Agent** that collects resource utilization metrics with read-only permissions, and an optional **Applier** that automatically applies recommendations on a configurable schedule. A cloud ML backend analyzes the metrics and generates recommendations for Deployments, StatefulSets, DaemonSets, ReplicaSets, ReplicationControllers, HPAs, and custom CRD-based workloads. Key concepts: a **recommendation** is an ML-derived set of optimal CPU/memory requests and limits (plus optional HPA target utilization, Java max heap, pod scheduling) for a **workload**; the **Agent** observes workloads in-cluster and forwards metrics, while the **Applier** deploys recommendations; the **optimization goal** (Savings, Balanced, Reliability) shifts the cost/reliability balance; the **schedule** (default daily) controls generation cadence and the **validity period** how long each recommendation stays usable; the **learning period** (default 7 days) gates automatic deployment of new workloads; **auto-deploy** is the on-switch for automated application. ## Core - [Get started](https://docs.stormforge.io/docs/get-started/): Prerequisites and documentation overview - [Concepts](https://docs.stormforge.io/docs/concepts/): Cluster, workload, Agent, Applier, schedule, learning period, validity period, and recommendation terminology - [Best practices](https://docs.stormforge.io/docs/reference/best-practices/): Tips to get the most value from StormForge - [Troubleshooting](https://docs.stormforge.io/docs/reference/troubleshooting/): Common questions, errors, and warnings for Agent, Applier, installation, and workloads ## Installation - [Basic installation](https://docs.stormforge.io/docs/installation/install-v2/): Install the Agent (and optional Applier) on any Kubernetes cluster using Helm - [Advanced installation](https://docs.stormforge.io/docs/installation/install-v2-adv/): Proxy servers, private registries, and enterprise network scenarios - [Install as EKS add-on](https://docs.stormforge.io/docs/installation/install-eks-addon/): Install via AWS Marketplace EKS add-on - [Install on OpenShift](https://docs.stormforge.io/docs/installation/install-openshift/): OpenShift Container Platform 4.x installation - [Agent configuration](https://docs.stormforge.io/docs/installation/agent-config/): Configure Agent behavior, namespace scoping, and resource limits - [Applier configuration](https://docs.stormforge.io/docs/installation/applier-config/): Configure Applier behavior, RBAC, and apply methods - [Upgrade](https://docs.stormforge.io/docs/installation/upgrade/): Upgrade StormForge to a newer version - [Uninstall](https://docs.stormforge.io/docs/installation/uninstall/): Remove StormForge from a cluster ## Recommendations - [Recommendations overview](https://docs.stormforge.io/docs/recommendations/): How StormForge generates recommendations — preliminary recs, learning period behavior, HPA support, and workload groups - [View recommendations](https://docs.stormforge.io/docs/recommendations/view/): Review recommendations in the StormForge UI - [Apply recommendations](https://docs.stormforge.io/docs/recommendations/apply/): Apply recommendations manually or via auto-deploy - [Generate on demand](https://docs.stormforge.io/docs/recommendations/generate/): Trigger recommendation generation outside the normal schedule - [Requests and limits](https://docs.stormforge.io/docs/recommendations/requests-and-limits/): How StormForge calculates CPU and memory requests and limits - [Java heap size](https://docs.stormforge.io/docs/recommendations/java/): How StormForge generates max heap size recommendations for Java workloads - [Workload groups](https://docs.stormforge.io/docs/recommendations/workload-groups/): Aggregate metrics from related workloads for better recommendations on split or low-traffic workloads - [Pod scheduling recommendations](https://docs.stormforge.io/docs/recommendations/pod-scheduling/): Node affinity recommendations for pod placement ## Configure - [Configure overview](https://docs.stormforge.io/docs/configure/): How optimization settings are organized and how precedence works - [Configure optimization settings](https://docs.stormforge.io/docs/configure/configure-opt-settings/): Step-by-step guide to configuring optimization at cluster, namespace, or workload level - [Cluster defaults](https://docs.stormforge.io/docs/configure/cluster-defaults/): Set default optimization configuration for an entire cluster - [Annotate namespaces](https://docs.stormforge.io/docs/configure/annotate-namespaces/): Apply optimization settings to all workloads in a namespace via annotations - [Annotate workloads](https://docs.stormforge.io/docs/configure/annotate-workloads/): Apply optimization settings to individual workloads via annotations - [Optimization configurations](https://docs.stormforge.io/docs/configure/optimization-configurations/): Define and reuse named optimization configuration profiles ## Settings - [Settings index](https://docs.stormforge.io/docs/configure/settings/): Index of all available optimization settings - [Apply settings](https://docs.stormforge.io/docs/configure/settings/apply-settings/): Auto-deploy, learning period, apply method, and deployment controls - [CPU and memory settings](https://docs.stormforge.io/docs/configure/settings/cpu-and-memory/): CPU and memory request/limit bounds and configuration - [Schedule settings](https://docs.stormforge.io/docs/configure/settings/schedule/): Recommendation generation schedule and validity period - [Optimization goal](https://docs.stormforge.io/docs/configure/settings/goal/): Tune the savings vs. reliability tradeoff - [HPA settings](https://docs.stormforge.io/docs/configure/settings/hpa/): Horizontal Pod Autoscaler target utilization recommendation settings - [Reliability response settings](https://docs.stormforge.io/docs/configure/settings/reliability/): Configure how StormForge responds to reliability signals - [Runtime settings](https://docs.stormforge.io/docs/configure/settings/runtime/): Runtime environment settings (e.g., Java) - [Pod scheduling settings](https://docs.stormforge.io/docs/configure/settings/pod-scheduling/): Node affinity configuration for pod scheduling recommendations - [Annotation settings](https://docs.stormforge.io/docs/configure/settings/annotations/): Full reference for Kubernetes annotation-based configuration ## CLI - [StormForge CLI](https://docs.stormforge.io/docs/stormforge-cli/): Install and authenticate the StormForge CLI - [Common CLI workflows](https://docs.stormforge.io/docs/stormforge-cli/common-cli-workflows/): Common tasks and usage patterns - [CLI reference](https://docs.stormforge.io/docs/stormforge-cli/reference/): Full command reference ## Optional - [Try the sandbox](https://docs.stormforge.io/docs/guides/sandbox/): Explore StormForge with view-only access — no installation required - [Try a sample app](https://docs.stormforge.io/docs/guides/showcase-app/): Experiment with StormForge using a load-generating sample app on your own cluster - [Manage workloads](https://docs.stormforge.io/docs/guides/workload-management/): Add, delete, and restore workloads; pause optimization - [Optimize custom workloads (CRDs)](https://docs.stormforge.io/docs/guides/custom-resource-workloads/): Detect and optimize workloads defined by Custom Resource Definitions - [Optimize operator-owned workloads](https://docs.stormforge.io/docs/guides/operator-owned-workloads/): Optimize workloads managed by custom operators using CRDs - [StormForge and Argo CD](https://docs.stormforge.io/docs/guides/argo-cd/): Use StormForge alongside Argo CD without field manager conflicts - [StormForge MCP server](https://docs.stormforge.io/docs/guides/mcp-server/): Connect an AI agent to StormForge using the Model Context Protocol - [Monitor StormForge health](https://docs.stormforge.io/docs/guides/monitoring-health-optlive/): View status metrics and logs for operational health - [Configure Applier alerts](https://docs.stormforge.io/docs/guides/applier-alerts/): Send HTTP webhook notifications when the Applier deploys a recommendation - [Manage secrets](https://docs.stormforge.io/docs/guides/manage-secrets/): Use a third-party credential manager instead of Helm-managed secrets - [Transparent proxy configuration](https://docs.stormforge.io/docs/guides/proxy-config/): Configure StormForge to work with a transparent proxy - [Import data into APM tools](https://docs.stormforge.io/docs/guides/apm_export/): Create a Prometheus scrape job to pipe recommendation data into APM tools - [Kustomize export](https://docs.stormforge.io/docs/guides/kustomize-export/): Automate committing Kustomize patches to Git and deploying through CI - [Subscribe via AWS Marketplace](https://docs.stormforge.io/docs/guides/aws_marketplace/): Set up pay-as-you-go billing through AWS Marketplace