☑️ Ensure Rollout that is marked as degraded scales down ReplicaSet
Users can set the progressDeadlineSeconds
key which states the maximum time in seconds in which a Rollout must make progress during an update before it is considered to be failed.
If rollout pods get stuck in an error state (e.g. image pull back off), the rollout degrades after the progress deadline is exceeded but the bad ReplicaSet/Pods aren't scaled down. The pods would keep retrying and eventually the rollout message would read ProgressDeadlineExceeded: The replicaset <name> has timed out progressing.
To abort the rollout, the user should also set progressDeadlineAbort
.
Targeted objects by this rule (types of kind): Rollout
Complexity: medium (What does this mean?)
Policy as code identifier: ARGO_ROLLOUT_INCORRECT_PROGRESS_DEADLINE_ABORT_VALUE_FALSE
This rule will fail
If the progressDeadlineSeconds
key is set, but the progressDeadlineAbort
key is not set or set to 'false':
kind: Rollout
spec:
progressDeadlineSeconds: 700
Rule output in the CLI
$ datree test *.yaml
>> File: failExample.yaml
❌ Ensure Rollout that is marked as degraded scales down ReplicaSet [1 occurrence]
💡 Incorrect value for key `progressDeadlineAbort` - value should be `true` to prevent the rollout pod from retrying indefinitely
How to fix this failure
Set the progressDeadlineAbort
key with value of 'true':
kind: Rollout
spec:
progressDeadlineSeconds: 700
progressDeadlineAbort: true