func()

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(),
		},
	})
}