Scaling Policies
A Scaling Policy is a reusable set of autoscaling rules for Compute Pools. It defines the CPU and GPU utilization thresholds that trigger scaling, how long utilization must hold before PaletteAI acts, the minimum and maximum resources a pool may scale between, and how long to wait between scaling actions. One policy can be attached to many Compute Pools, so teams can standardize scaling behavior instead of tuning each pool individually.
You can manage Scaling Policies from the Settings > Autoscaling Policies menu at the project, tenant, and system scope. Advanced and GitOps users can manage them declaratively through the ScalingPolicy custom resource; the ScalingPolicy Configuration reference describes every field.
How Autoscaling Decisions Work
When a Compute Pool references a Scaling Policy, PaletteAI monitors the pool's resource utilization through Prometheus and makes scaling decisions based on sustained metric values:
-
Scale Up — Triggered when average utilization stays above the scale-up threshold for the configured duration. PaletteAI adds machines to the pool and waits for them to become healthy.
-
Scale Down — Triggered when average utilization stays below the scale-down threshold for the configured duration. PaletteAI removes machines from the pool.
-
Cooldown — After a scaling operation, the pool enters a cooldown period to allow metrics to stabilize before the next scaling decision.
-
Abort — If a scale-up does not complete within the configured abort duration, PaletteAI removes the machines that never became healthy and keeps the ones that did. Scale-down operations always run to completion.
Resource bounds put a floor and a ceiling on scaling, so a demand spike cannot grow a pool beyond the hardware budget you set, and a quiet period cannot shrink it below the capacity your workloads need.
Pre-Defined Scaling Profiles
PaletteAI ships three pre-defined Scaling Policies that you can reference directly or use as a starting point for your own policies.
| Name | Scale-Up Threshold | Scale-Down Threshold | Scale-Up Duration | Scale-Down Duration | Cooldown |
|---|---|---|---|---|---|
aggressive | 50% | 15% | 2m | 3m | 10m |
balanced | 75% | 20% | 5m | 8m | 20m |
conservative | 85% | 10% | 10m | 15m | 30m |
These profiles are installed into the platform namespace (mural-system) of the hub cluster during PaletteAI installation and are re-applied during upgrades. Like all resources in the platform namespace, they are managed exclusively by the platform and cannot be modified by users. Reference them in a Compute Pool the same way you would reference a custom Scaling Policy. To customize thresholds or bounds, clone a profile into your project namespace and edit the clone, then reference the clone from your Compute Pool.
Use aggressive for latency-sensitive workloads that need fast scale-up response, balanced for general-purpose workloads, and conservative for stable workloads where over-provisioning is costly.
Permissions
Scaling Policy operations are controlled by Role-Based Access Control (RBAC) permissions: spectrocloud.com/scalingpolicies:create, spectrocloud.com/scalingpolicies:update, and spectrocloud.com/scalingpolicies:delete. If an action or button described in the documentation is not displayed, your role does not include the required permission. Contact your administrator to request access.
Next Steps
- Create and Manage Scaling Policies — Create a policy and attach it to a Compute Pool.
- ScalingPolicy Configuration — All fields, defaults, and validation rules.
- Compute Pools — How autoscaling fits into the Compute Pool lifecycle.