Available in:  CE, BE, SE, SE+, EE

The module lifecycle stageExperimental
The module has requirements for installation

The adaptive-resource-management module is intended for cluster administrators and platform engineers who want to automate the selection of resource requests and limits for workloads. It eliminates the need to manually tune CPU and memory parameters by leveraging VPA (Vertical Pod Autoscaler) recommendations.

The module deploys the AutoVPA controller based on Goldilocks, which automatically creates VPA objects for workloads in selected namespaces and provides resource recommendations.

Main Features

  • Automatic creation of VPA objects for Deployments, StatefulSets, DaemonSets, and Jobs in managed namespaces.
  • Flexible namespace selection: manage all namespaces, only namespaces with a specific label, or namespaces matching a label selector.
  • Combined selection mode: use a label selector together with the special label autovpa.deckhouse.io/enabled to form a union of matching namespaces.
  • For the default recommendation-only mode, no changes to existing workload manifests are required; VPA objects are created and maintained automatically.
  • Per-workload and per-namespace VPA tuning via autovpa.deckhouse.io/* annotations and labels — see Usage.
  • Minimal resource footprint: the controller runs as a single replica with low CPU and memory requirements.

Limitations

  • The module requires the vertical-pod-autoscaler module to be enabled in the cluster for VPA objects to function.
  • By default, AutoVPA creates VPA objects in Off mode (recommendation-only). Other update modes can be set via annotations — see Usage; they require a working VPA updater and may change pod resource requests/limits.
  • System namespaces (kube-*, d8-*) are never managed by AutoVPA.
  • AutoVPA does not manage workloads that already have a VPA without module marker labels (heritage: deckhouse, module: adaptive-resource-management, source: autovpa).
  • Workload tuning annotations are not applied immediately — see How AutoVPA applies changes.