From 45c65c8b780a312de497e560e5afccb2644feca9 Mon Sep 17 00:00:00 2001 From: pingjiang Date: Tue, 30 Jan 2024 19:56:25 +0800 Subject: [PATCH] fix unit test and reconcile triggers, in case of the features configmap changes Signed-off-by: pingjiang --- .../pkg/reconciler/trigger/controller.go | 7 +++++++ .../reconciler/trigger/namespaced_controller.go | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/control-plane/pkg/reconciler/trigger/controller.go b/control-plane/pkg/reconciler/trigger/controller.go index 96caddf77e..4dec0ee8ae 100644 --- a/control-plane/pkg/reconciler/trigger/controller.go +++ b/control-plane/pkg/reconciler/trigger/controller.go @@ -124,6 +124,13 @@ func NewController(ctx context.Context, watcher configmap.Watcher, configs *conf impl.GlobalResync(triggerInformer.Informer()) } + featureStore := feature.NewStore(logging.FromContext(ctx).Named("feature-config-store"), func(name string, value interface{}) { + if globalResync != nil { + globalResync(nil) + } + }) + featureStore.WatchConfigs(watcher) + configmapInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{ FilterFunc: controller.FilterWithNameAndNamespace(configs.DataPlaneConfigMapNamespace, configs.ContractConfigMapName), Handler: cache.ResourceEventHandlerFuncs{ diff --git a/control-plane/pkg/reconciler/trigger/namespaced_controller.go b/control-plane/pkg/reconciler/trigger/namespaced_controller.go index 7694edb804..d6f4a1ab45 100644 --- a/control-plane/pkg/reconciler/trigger/namespaced_controller.go +++ b/control-plane/pkg/reconciler/trigger/namespaced_controller.go @@ -27,11 +27,13 @@ import ( configmapinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap" podinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/pod" secretinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/secret" + serviceaccountinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/serviceaccount" "knative.dev/pkg/configmap" "knative.dev/pkg/controller" "knative.dev/pkg/logging" "knative.dev/pkg/resolver" + eventing "knative.dev/eventing/pkg/apis/eventing/v1" "knative.dev/eventing/pkg/apis/feature" eventingclient "knative.dev/eventing/pkg/client/injection/client" brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker" @@ -57,6 +59,7 @@ func NewNamespacedController(ctx context.Context, watcher configmap.Watcher, con brokerInformer := brokerinformer.Get(ctx) triggerInformer := triggerinformer.Get(ctx) triggerLister := triggerInformer.Lister() + serviceaccountInformer := serviceaccountinformer.Get(ctx) reconciler := &NamespacedReconciler{ Reconciler: &base.Reconciler{ @@ -76,6 +79,7 @@ func NewNamespacedController(ctx context.Context, watcher configmap.Watcher, con }, BrokerLister: brokerInformer.Lister(), ConfigMapLister: configmapInformer.Lister(), + ServiceAccountLister: serviceaccountInformer.Lister(), EventingClient: eventingclient.Get(ctx), Env: configs, NewKafkaClient: sarama.NewClient, @@ -111,6 +115,13 @@ func NewNamespacedController(ctx context.Context, watcher configmap.Watcher, con impl.GlobalResync(brokerInformer.Informer()) } + featureStore := feature.NewStore(logging.FromContext(ctx).Named("feature-config-store"), func(name string, value interface{}) { + if globalResync != nil { + globalResync(nil) + } + }) + featureStore.WatchConfigs(watcher) + configmapInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{ FilterFunc: kafka.FilterWithLabel(kafka.NamespacedBrokerDataplaneLabelKey, kafka.NamespacedBrokerDataplaneLabelValue), Handler: cache.ResourceEventHandlerFuncs{ @@ -126,5 +137,11 @@ func NewNamespacedController(ctx context.Context, watcher configmap.Watcher, con reconciler.Tracker = impl.Tracker secretinformer.Get(ctx).Informer().AddEventHandler(controller.HandleAll(reconciler.Tracker.OnChanged)) + // Reconciler Trigger when the OIDC service account changes + serviceaccountInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{ + FilterFunc: controller.FilterController(&eventing.Trigger{}), + Handler: controller.HandleAll(impl.EnqueueControllerOf), + }) + return impl }