How overprovisioning works
You configure three values in your cluster’s deployment config:overProvisioningFactorCPU: Fraction of the CPU limit used as the CPU request (0 < value ≤ 1).overProvisioningFactorMem: Fraction of the memory limit used as the memory request (0 < value ≤ 1).overProvisioningComponents: List of component names that receive the overprovisioning factor.
requests.cpu = limits.cpu × overProvisioningFactorCPUrequests.memory = limits.memory × overProvisioningFactorMem
limits: { cpu: "2000m", memory: "4Gi" } and both factors are 0.5, then requests become { cpu: "1000m", memory: "2Gi" }. Default factors of 1 mean no change (requests equal limits).
Configure overprovisioning
Set these keys in your cluster config (for example, in the cluster’s deployment config or the values used when registering the cluster). Values must be greater than 0 and less than or equal to 1.overProvisioningComponents keep their existing request/limit values.
Supported components
You can include any of these inoverProvisioningComponents:
Worker queues
Workers in a worker queue always request their full limits, even whenworkers is in overProvisioningComponents. When you turn on worker queues, the first update that gives an existing Deployment a queue raises its workers’ requests to their limits. See Upgrade to Astro Private Cloud 2.2.
Choose factor values
1(default): No overprovisioning; requests equal limits. Use when you want predictable capacity and no bin-packing.0.5: Requests are half of limits. Common choice for better bin-packing while keeping headroom.- Lower values (for example,
0.25): More aggressive bin-packing; ensure your workloads can tolerate less guaranteed CPU/memory.
0.5 for CPU and memory and adjust based on utilization and scheduling behavior.
Adopted Deployments
Adopting an Astro Runtime Operator Deployment keeps the resource requests from its custom resource. The factors take effect the first time you update the Deployment’s settings in APC, not when you push code. They apply only to the webserver or API server, because that’s the only component whose resources APC manages on an adopted Deployment. For example, withoverProvisioningFactorMem: 0.5, a webserver with a 1920Mi memory limit keeps its 1920Mi request after adoption. After the first settings update, it requests 960Mi and restarts.
To keep the requests from your custom resource, set resourceManagement.overProvisioningFactorCPU and resourceManagement.overProvisioningFactorMem to 1 in a Deployment-level configuration override before the first settings update. That update stores the reduced requests, so setting the factors to 1 afterward doesn’t restore them.
Best practices
- Set factors per cluster and override where needed: The factors in the cluster’s deployment config apply to every Deployment on the cluster. A Workspace or Deployment configuration override can set different factors.
- Include only components that have resources: Only components with
resources.limits(and optionallyresources.requests) in the deployment config receive modifications; listing others has no effect. - Monitor utilization: After enabling, watch pod scheduling and resource usage to confirm the factors match your workload and node capacity.