Open
Description
After discussing this with @detiber, we realized there's no good solution for the following case:
- A request is received
- The request cannot proceed because of a missing dependency on resource A
- The reconciler is watching events for resource A
- The reconciler returns a result that indicates the reconciliation is incomplete due to reason X, but the request should not be requeued
Instead the current logic is:
- A reconciler is using one or more watches to trigger requests
- A request cannot proceed due to a missing dependency
- If
result.RequeueAfter > 0
then the request is added to the queue for processing after the value specified byresult.RequeueAfter
- If
result.Requeue
istrue
then the request is added to the queue with the same exponential backoff logic used when an error is returned - If an error is returned then the request is added to the queue with the exponential backoff logic
Today there is currently no way to indicate a reconciliation is incomplete without also having the request requeued by the manager either via an explicit amount of time or the exponential backoff logic (due to error or Requeue == true
).
There should be a way to signal:
- The reconciliation is incomplete
- Do not requeue, the reconciler is watching the resources necessary to trigger its own events
Thanks!
Metadata
Metadata
Assignees
Labels
Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.Categorizes issue or PR as related to design.Categorizes issue or PR as related to a new feature.Indicates that an issue or PR should not be auto-closed due to staleness.Important over the long term, but may not be staffed and/or may need multiple releases to complete.