in internal/controller/event_handler.go [24:50]
func (e *EnqueueRequestsFromWatchedObject) Update(ctx context.Context, evt event.UpdateEvent, q workqueue.TypedRateLimitingInterface[reconcile.Request]) {
ownerRefs := evt.ObjectNew.GetOwnerReferences()
ownedByProvider := false
ownerProvider := ""
if len(ownerRefs) > 0 {
for _, owner := range ownerRefs {
if owner.Kind == ProviderName {
ownedByProvider = true
ownerProvider = owner.Name
break
}
}
}
// Only queue new reconcile request when both conditions are true
// 1. ConfigMap/Secret is owned by AzureAppConfigurationProvider
// 2. ConfigMap/Secret is not updated by the reconcile controller
if !ownedByProvider || evt.ObjectNew.GetAnnotations()[LastReconcileTimeAnnotation] != evt.ObjectOld.GetAnnotations()[LastReconcileTimeAnnotation] {
return
}
q.Add(reconcile.Request{
NamespacedName: types.NamespacedName{
Name: ownerProvider,
Namespace: evt.ObjectNew.GetNamespace(),
},
})
}