diff --git a/controllers/sriovnetworknodepolicy_controller.go b/controllers/sriovnetworknodepolicy_controller.go index 6efbd0b8e..6dd846603 100644 --- a/controllers/sriovnetworknodepolicy_controller.go +++ b/controllers/sriovnetworknodepolicy_controller.go @@ -42,6 +42,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/handler" "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/reconcile" + "sigs.k8s.io/controller-runtime/pkg/source" utils "github.com/k8snetworkplumbingwg/sriov-network-operator/pkg/utils" "github.com/k8snetworkplumbingwg/sriov-network-operator/pkg/vars" @@ -168,11 +169,23 @@ func (r *SriovNetworkNodePolicyReconciler) SetupWithManager(mgr ctrl.Manager) er Info("Enqueuing sync for delete event", "resource", e.Object.GetName()) qHandler(q) }, + GenericFunc: func(ctx context.Context, e event.GenericEvent, q workqueue.RateLimitingInterface) { + log.Log.WithName("SriovNetworkNodePolicy"). + Info("Enqueuing sync for generic event", "resource", e.Object.GetName()) + qHandler(q) + }, } + // send initial sync event to trigger reconcile when controller is started + var eventChan = make(chan event.GenericEvent, 1) + eventChan <- event.GenericEvent{Object: &sriovnetworkv1.SriovNetworkNodePolicy{ + ObjectMeta: metav1.ObjectMeta{Name: nodePolicySyncEventName, Namespace: ""}}} + close(eventChan) + return ctrl.NewControllerManagedBy(mgr). For(&sriovnetworkv1.SriovNetworkNodePolicy{}). Watches(&sriovnetworkv1.SriovNetworkNodePolicy{}, delayedEventHandler). + WatchesRawSource(&source.Channel{Source: eventChan}, delayedEventHandler). Complete(r) }