# System & user-defined restrictions

## 🤖 **System-defined safeguards** <a href="#system-defined-safeguards" id="system-defined-safeguards"></a>

System-defined rules automatically apply restrictions due to technical limitations or when Automation cannot execute safely, to prevent risks and instability.

| Rule type                                 | Tooltip (automated workload)                                                                                                                      | Tooltip (non-automated workload)                                                                                                            |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| ResourceQuota                             | Automation is restricted to avoid exceeding ResourceQuota constraints.                                                                            | Recommendation is restricted to honor ResourceQuota constraints. Current values are kept for stability.                                     |
| LimitRange                                | Recommended value is outside the defined LimitRange. Current values were kept for stability.                                                      | Recommendation is restricted to honor LimitRange constraints. Current values are kept for stability.                                        |
| NodeAware Recommendation                  | Automation is restricted because the recommended resources exceed node capacity, preventing scheduling issues.                                    | Recommendation is capped at node capacity. Current values are kept for stability.                                                           |
| HPA with Sidecar                          | Automation is restricted to avoid triggering HPA due to sidecar underprovisioning.                                                                | Recommendation is constrained to avoid triggering HPA. Current values are kept for stability.                                               |
| Sidecar                                   | Sidecar allocations are immutable. Automation will execute only pod-level recommendations.                                                        | Sidecar allocations are immutable                                                                                                           |
| OnDelete Strategy                         | Automation is restricted because OnDelete strategy requires pods to be manually deleted for updates to apply.                                     | -                                                                                                                                           |
| kube-system Namespace                     | Automation is restricted because kube-system workloads must be explicitly enabled.                                                                | -                                                                                                                                           |
| DaemonSet                                 | Automation is restricted to decrease-only mode for DaemonSets to prevent over-provisioning.                                                       | -                                                                                                                                           |
| `CPULimitRemovalRecommended`              | Memory resources are not reduced because of the recommendation to remove the CPU limit. Removing the CPU limit might increase memory usage.       | Memory resources are not reduced because of the recommendation to remove the CPU limit. Removing the CPU limit might increase memory usage. |
| `CPULimitRemovalRecommended`              | CPU resources are not reduced because of the recommendation to remove the CPU limit. Removing the CPU limit might increase CPU usage.             | CPU resources are not reduced because of the recommendation to remove the CPU limit. Removing the CPU limit might increase CPU usage.       |
| `CPULimitRemovedRecently`                 | Memory resources could not be reduced because of the recent CPU limit removal. Removing the CPU limit might increase memory usage.                | Memory resources could not be reduced because of the recent CPU limit removal. Removing the CPU limit might increase memory usage.          |
| `CPULimitRemovedRecently`                 | CPU resources could not be reduced because of the recent CPU limit removal. Removing the CPU limit might increase CPU usage.                      | CPU resources could not be reduced because of the recent CPU limit removal. Removing the CPU limit might increase CPU usage.                |
| Xmx, Xms MaxHeapSize above recommendation | Automation restricted: MaxHeapSize is explicitly set to {{.ThresholdFormatted}} {{.Unit}}. Automation will not reduce below the configured value. | MaxHeapSize is explicitly set to {{.ThresholdFormatted}} {{.Unit}}. Recommendation will not reduce below the configured value.              |
| Insignificant resource change             | Resource change is insignificant, keeping recommendation at {{.ThresholdFormatted}} {{.Unit}}                                                     | Resource change is insignificant, keeping recommendation at {{.ThresholdFormatted}} {{.Unit}}                                               |

## 👨🏻‍💻 **User-defined rules**

Restrictions triggered by user preference configurations.

| Rule type                                                                                                                    | Tooltip                                                                                                                                                           |
| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p>Automation mode Disabled</p><p>(<code>automationMode</code>)</p>                                                          | Automation mode is set to “Disabled"                                                                                                                              |
| Global kill‑switch (`stopAllAutomation`)                                                                                     | <p>Cluster kill-switch (stopAllAutomation) is active, halting all automated actions.</p><p> </p>                                                                  |
| <p>Minimum resiliency level to ignore maintenance window</p><p>(<code>maintenanceWindowIgnoredMinResiliencyLevel</code>)</p> | <p>Resiliency risk is below the configured threshold outside the maintenance window.</p><p> </p>                                                                  |
| Monthly waste threshold (`workloadMinWasteUSDPerMonth`)                                                                      | <p>Monthly waste is below the configured threshold amount of \<workloadMinWasteUSDPerMonth>.</p><p> </p>                                                          |
| <p>CPU request increase not allowed (<code>increaseEnabled: false</code>)</p><p> </p>                                        | Increasing CPU requests is disabled by configuration.                                                                                                             |
| <p>CPU request decrease not allowed (<code>decreaseEnabled: false</code>)</p><p> </p>                                        | Decreasing CPU requests is disabled by configuration.                                                                                                             |
| Minimum CPU requests (`minimumCores`)                                                                                        | <p>Recommended CPU request is below the configured minimum \<minimumCores> cores, using the minimum value.</p><p> </p><p> </p>                                    |
| Maximum CPU requests (`maximumCores`)                                                                                        | <p>Recommended CPU request exceeds the configured maximum \<maximumCores> cores, using the maximum value.</p><p> </p>                                             |
| Keep CPU limit (`keepLimit`)                                                                                                 | CPU limit removal is disabled by configuration, retaining the existing limit.                                                                                     |
| Keep CPU limit (`keepLimit`)                                                                                                 | CPU request could not be reduced because keep CPU limit configured and workload experiences CPU throttling. Reducing CPU request could cause a higher throttlingю |
| Memory request increase not allowed (`increaseEnabled: false`)                                                               | Increasing memory requests is disabled by configuration.                                                                                                          |
| Memory request decrease not allowed (`decreaseEnabled: false`)                                                               | Decreasing memory requests is disabled by configuration.                                                                                                          |
| Minimum memory request (`minimumGiB`)                                                                                        | <p>Recommended memory request is below the configured minimum \<minimumGiB> GiB, using the minimum value.</p><p> </p>                                             |
| Maximum memory request (`maximumGiB`)                                                                                        | <p>Recommended memory request exceeds the configured maximum \<maximumGiB> GiB, using the maximum value.</p><p> </p>                                              |
| <p>Memory limit increase not allowed</p><p>(<code>increaseEnabled: false</code>)</p>                                         | Increasing memory limits is disabled by configuration.                                                                                                            |
| <p>Memory limit decrease not allowed</p><p>(<code>decreaseEnabled: false</code>)</p>                                         | Decreasing memory limits is disabled by configuration.                                                                                                            |
| Minimum memory limit (`minimumGiB`)                                                                                          | Recommended memory limit is below the configured minimum `<minimumGiB>` GiB, using the minimum value.                                                             |
| Maximum memory limit (`maximumGiB`)                                                                                          | Recommended memory limit exceeds the configured maximum \<maximumGiB> GiB, using the maximum value.                                                               |
| Daily max memory limit increases (`maxMemoryIncreaseIterations.daily`)                                                       | Daily memory increase limit reached, waiting until tomorrow.                                                                                                      |
| Weekly max memory limit increases (`maxMemoryIncreaseIterations.weekly`)                                                     | Weekly memory increase limit reached; waiting until next week.                                                                                                    |
| <p>Maintenance window</p><p>(<code>maintenanceWindow</code>)</p><p> </p>                                                     | Currently outside the maintenance window, the recommendation will be applied in the next maintenance window.                                                      |
| Concurrent ReplicaSets (`duringRolloutInProgress: pause`)                                                                    | Resource changes are not allowed when multiple concurrent ReplicaSets are detected                                                                                |
