.Reconcile
queue based on resource ID rather than kind
#1019
Labels
enhancement
New feature or request
.Reconcile
queue based on resource ID rather than kind
#1019
Is your feature request related to a problem? Please describe.
In uds-core we have a custom resource named
Package
that we watch for create/update events:https://github.com/defenseunicorns/uds-core/blob/main/src/pepr/operator/index.ts#L57-L62
Each event is queued via
Reconcile
. In effect this means that allPackage
resource creations/updates are placed in a queue together. As one quick example of the effects:Package
A, B, and C - all in a single applyPackage
C until A and B have completedThe same is true on updates:
Package
s A, B, CPackage
D and updatePackage
CPackage
C is not updated until D is fully createdIdeally I would like each
Package
to be queued separately - so updates on C wait for previous ones to complete, but A/B/D do not affect the timing/waiting.Describe the solution you'd like
Provide an option for
.Reconcile
to optionally be queued per resource. This could be done based on resource namespace + name, or some other unique identifier like UID. This would speed up reconcile time when multiple resources are created at the same time.Describe alternatives you've considered
Separate bindings could be created per namespace or per name, but this does not work well for an extensible operator with resources in arbitrary namespaces.
Additional context
This probably should be an option, but not the only option since certain reconcile code may not behave well on concurrent operations, even if restricted to different resources.
The text was updated successfully, but these errors were encountered: