Skip to main content

☑️ 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

Read more