Quick Links
How To Read Outcomes
precheckmeans execution is gated. A failed pre-check blocks the current resizing attempt.filtermeans action pruning. A filter removes one or more resize resource actions.
rightsizing summarycontains the summary and logsfailedChecksandappliedFilters- Warning events with reason
PrecheckFailedfor failed pre-checks - Normal workload events with reason
ActionFilteredByAutoscalerwhen HPA or VPA filters suppress resize actions - Recommendation payload summaries in
precheckSummaryandfilterSummary
retry in the context of this document:
- When a resize action will be retried, it means the condition that caused the pre-check failure is expected to resolve itself, for example when a pod becomes Ready.
- This is independent from
GlobalConfiguration.spec.rescanInterval, which controls the regular interval for checking whether pods require resizing.
Pre-Checks
For hook-only
ContainerArgsPolicy convergence, when no AutomationStrategy resolves, the controller uses a 30-second fallback for safetyChecks.resizeRetryInterval. A resolved strategy interval remains authoritative.
Filters
Evaluation Order
- Build candidate actions from selected recommendations.
- Apply
automation-strategy-disabled. - Run early pre-checks:
pod-terminating,namespace-protected, optionalpause-active, optionalresource-quota-exceeded. - Apply pod action filters:
change-below-threshold,container-skip-active,hpa-resource-managed,vpa-resource-managed,node-capacity-insufficient,pod-limit-range-violated. - Run final non-retryable plan consistency checks:
requests-exceed-limits,gpu-plan-consistency, and controller-onlycommon-resize-method. - If any remaining action is outside its scheduling window, retain the filter summary, block the full controller plan, and requeue for the earliest allowed time.
- Run final retryable health checks:
min-ready-duration-not-met,owner-pods-not-ready,max-unavailable-exceeded. - Execute in-place resize or eviction if actions remain.
- Workload policy recommendation generation also applies
limit-range-violatedbefore owner annotations are written. - The webhook evaluation path runs
namespace-protected,pause-active, andresource-quota-exceeded. pod-terminating, scheduling windows,common-resize-method, and the final retryable health checks are controller-side.- Pod-wide safety settings use the strictest value among strategies that supplied selected actions. Boolean checks use logical OR, minimum percentages and readiness durations use the larger value, and losing candidates do not contribute.
Reading failedChecks and appliedFilters
failedCheckscontains check failures withname, optionalmessage, and optionalmetadata.appliedFilterscontains pruned actions withname, optional filtermetadata, andtargetswithcontainer,usage, andresource.- Bounds enforcement also appears in
appliedFilters:floor-clampedandceiling-clampedindicate the controller adjusted the desired value before deciding whether any resize action still remained. pause-activesetsfailedChecks[].metadata.scopetopodornamespace; namespace pauses also includefailedChecks[].metadata.namespace.container-skip-activesetsappliedFilters[].metadata.scope=containerandappliedFilters[].metadata.container=<name>.
{"name":"min-ready-duration-not-met","message":"pod not ready"}infailedChecksmeans execution is blocked for now and retried.{"name":"resource-quota-exceeded","message":"resource quota exceeded (ResourceQuota/team-quota)","metadata":{"name":"team-quota"}}infailedChecksidentifies the specific blocking quota.{"name":"container-skip-active","metadata":{"scope":"container","container":"app"},"targets":[{"container":"app","usage":"requests","resource":"cpu"}]}inappliedFiltersmeans only that container action was removed becauseskip-containersmatched that container.{"name":"hpa-resource-managed","targets":[{"container":"app","usage":"requests","resource":"cpu"}]}inappliedFiltersmeans that resize action was removed because HPA controls that resource.{"name":"floor-clamped","metadata":{"value":"200Mi","originalDesired":"128Mi","clampedDesired":"200Mi","rule":"AutomationStrategy/example-rule"},"targets":[{"container":"app","usage":"requests","resource":"memory"}]}inappliedFiltersmeans the recommendation was raised to the strategy floor before execution.
Related Guides
- For cluster-wide operating controls, see Advanced Configuration.
- For strategy field reference, see Automation Strategies and Cluster Automation Strategies.
- For recommendation freshness on policies, see Proactive Policies and Cluster Proactive Policies.
- For debugging blocked actions, see Troubleshooting.

