Skip to content

Allow a result that indicates the reconciliation is incomplete and does not trigger the exponential backoff logic #617

Open
@akutz

Description

@akutz

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 by result.RequeueAfter
  • If result.Requeue is true 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

No one assigned

    Labels

    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.kind/designCategorizes issue or PR as related to design.kind/featureCategorizes issue or PR as related to a new feature.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.priority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions