operator-framework / operator-framework/operator-controller

[epic] Add retry limits and a new reason to the `Progressing` status condition that is present when retry limit is reached.

Open
#1,440 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

epic lifecycle/frozen v1.x
Dominant language
Go
Stars
213
Forks
85
Avg merge
2d 1m
Merged PRs (30d)
38

Description

As part of the v1 API stabilization effort, a few of us (@joelanford @grokspawn @LalatenduMohanty and I) identified that it would be a better user experience if the Progressing condition when set to True was considered a "happy" state where generally everything is okay and we are actively attempting to progress towards a future state OR are at the desired state and ready to progress towards any future desired states. We felt that Retrying is currently a mix of a "sad" and "happy" reason but is generally more reflective of "we encountered a hiccup in progressing" as opposed to requiring user intervention.

In an effort to make the Retrying reason be considered "happier", it was concluded that it would be best to add some form of a retry limit that when reached would result in the Progressing condition being set to False with a reason along the lines of RetryLimitExceeded to signal to users that the ClusterExtension/ClusterCatalog is no longer in a "happy" state.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing how ClusterExtension and ClusterCatalog currently set the Progressing condition and handle retries. Define the retry-limit behavior and the RetryLimitExceeded reason described in the issue, then add coverage showing the condition changes when the limit is reached.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.