From 6a0f69fd47131a979600b6e4042e375164066840 Mon Sep 17 00:00:00 2001 From: TYTaO <1522014784@qq.com> Date: Fri, 2 Sep 2022 04:34:41 +0800 Subject: [PATCH] fix Missing filter (#151) Signed-off-by: tytao <1522014784@qq.com> Signed-off-by: tytao <1522014784@qq.com> --- pkg/helper/helpers.go | 8 ++++++++ .../appliedmanifestwork_finalize_controller.go | 5 +++-- pkg/spoke/spokeagent.go | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pkg/helper/helpers.go b/pkg/helper/helpers.go index 3e4f2c854..d3ca68a50 100644 --- a/pkg/helper/helpers.go +++ b/pkg/helper/helpers.go @@ -330,6 +330,14 @@ func AppliedManifestworkQueueKeyFunc(hubhash string) factory.ObjectQueueKeyFunc } } +// AppliedManifestworkHubHashFilter filter the appliedmanifestwork belonging to this hub +func AppliedManifestworkHubHashFilter(hubHash string) factory.EventFilterFunc { + return func(obj interface{}) bool { + accessor, _ := meta.Accessor(obj) + return strings.HasPrefix(accessor.GetName(), hubHash) + } +} + // HubHash returns a hash of hubserver // NOTE: the length of hash string is 64, meaning the length of manifestwork name should be less than 189 func HubHash(hubServer string) string { diff --git a/pkg/spoke/controllers/finalizercontroller/appliedmanifestwork_finalize_controller.go b/pkg/spoke/controllers/finalizercontroller/appliedmanifestwork_finalize_controller.go index d37e5a031..0399f4b74 100644 --- a/pkg/spoke/controllers/finalizercontroller/appliedmanifestwork_finalize_controller.go +++ b/pkg/spoke/controllers/finalizercontroller/appliedmanifestwork_finalize_controller.go @@ -36,6 +36,7 @@ func NewAppliedManifestWorkFinalizeController( spokeDynamicClient dynamic.Interface, appliedManifestWorkClient workv1client.AppliedManifestWorkInterface, appliedManifestWorkInformer workinformer.AppliedManifestWorkInformer, + hubHash string, ) factory.Controller { controller := &AppliedManifestWorkFinalizeController{ @@ -46,10 +47,10 @@ func NewAppliedManifestWorkFinalizeController( } return factory.New(). - WithInformersQueueKeyFunc(func(obj runtime.Object) string { + WithFilteredEventsInformersQueueKeyFunc(func(obj runtime.Object) string { accessor, _ := meta.Accessor(obj) return accessor.GetName() - }, appliedManifestWorkInformer.Informer()). + }, helper.AppliedManifestworkHubHashFilter(hubHash), appliedManifestWorkInformer.Informer()). WithSync(controller.sync).ToController("AppliedManifestWorkFinalizer", recorder) } diff --git a/pkg/spoke/spokeagent.go b/pkg/spoke/spokeagent.go index 950d7777e..f0f0a9950 100644 --- a/pkg/spoke/spokeagent.go +++ b/pkg/spoke/spokeagent.go @@ -128,6 +128,7 @@ func (o *WorkloadAgentOptions) RunWorkloadAgent(ctx context.Context, controllerC spokeDynamicClient, spokeWorkClient.WorkV1().AppliedManifestWorks(), spokeWorkInformerFactory.Work().V1().AppliedManifestWorks(), + hubhash, ) manifestWorkFinalizeController := finalizercontroller.NewManifestWorkFinalizeController( controllerContext.EventRecorder,