Skip to content

Commit

Permalink
fix: Replace RestrictedEnqueueRequestForOwner with EnqueueRequestForO…
Browse files Browse the repository at this point in the history
…wner (#1792)

* debug RestrictedEnqueueRequestForOwner

* debug RestrictedEnqueueRequestForOwner

* debug RestrictedEnqueueRequestForOwner

* replace with EnqueueRequestForOwner

* delete RestrictedEnqueueRequestForOwner

* add ResourceVersionChangedPredicate

* replace with ResourceVersionChangedPredicate

* only have ResourceVersionChangedPredicate for Manifest CR

* only have ResourceVersionChangedPredicate for Manifest CR

* add predicate for manifest controller setup

* add predicate for manifest controller setup
  • Loading branch information
ruanxin committed Aug 26, 2024
1 parent 88f2629 commit 9ad1b9e
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 239 deletions.
11 changes: 6 additions & 5 deletions internal/controller/kyma/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,18 +57,17 @@ func (r *Reconciler) SetupWithManager(mgr ctrl.Manager, opts ctrlruntime.Options
if err := mgr.Add(runnableListener); err != nil {
return fmt.Errorf("KymaReconciler %w", err)
}

predicates := predicate.Or(predicate.GenerationChangedPredicate{}, predicate.LabelChangedPredicate{})
if err := ctrl.NewControllerManagedBy(mgr).For(&v1beta2.Kyma{}).
Named(controllerName).
WithOptions(opts).
WithEventFilter(predicates).
Watches(&v1beta2.ModuleTemplate{},
handler.EnqueueRequestsFromMapFunc(watch.NewTemplateChangeHandler(r).Watch()),
builder.WithPredicates(predicates)).
Watches(&apicorev1.Secret{}, handler.Funcs{}).
Watches(&apicorev1.Secret{}, handler.Funcs{}, builder.WithPredicates(predicates)).
Watches(&v1beta2.Manifest{},
&watch.RestrictedEnqueueRequestForOwner{Log: ctrl.Log, OwnerType: &v1beta2.Kyma{}, IsController: true}).
handler.EnqueueRequestForOwner(mgr.GetScheme(), mgr.GetRESTMapper(), &v1beta2.Kyma{},
handler.OnlyControllerOwner()), builder.WithPredicates(predicate.ResourceVersionChangedPredicate{})).
WatchesRawSource(source.Channel(runnableListener.ReceivedEvents, r.skrEventHandler())).
Complete(r); err != nil {
return fmt.Errorf("failed to setup manager for kyma controller: %w", err)
Expand All @@ -79,7 +78,9 @@ func (r *Reconciler) SetupWithManager(mgr ctrl.Manager, opts ctrlruntime.Options

func (r *Reconciler) skrEventHandler() *handler.Funcs {
return &handler.Funcs{
GenericFunc: func(ctx context.Context, evnt event.GenericEvent, queue workqueue.TypedRateLimitingInterface[ctrl.Request]) {
GenericFunc: func(ctx context.Context, evnt event.GenericEvent,
queue workqueue.TypedRateLimitingInterface[ctrl.Request],
) {
logger := ctrl.Log.WithName("listener")
unstructWatcherEvt, conversionOk := evnt.Object.(*unstructured.Unstructured)
if !conversionOk {
Expand Down
7 changes: 2 additions & 5 deletions internal/controller/mandatorymodule/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (

apicorev1 "k8s.io/api/core/v1"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/builder"
ctrlruntime "sigs.k8s.io/controller-runtime/pkg/controller"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/predicate"
Expand All @@ -20,16 +19,14 @@ const (
)

func (r *InstallationReconciler) SetupWithManager(mgr ctrl.Manager, opts ctrlruntime.Options) error {
predicates := predicate.Or(predicate.GenerationChangedPredicate{}, predicate.LabelChangedPredicate{})
if err := ctrl.NewControllerManagedBy(mgr).
For(&v1beta2.Kyma{}).
Named(installationControllerName).
WithOptions(opts).
WithEventFilter(predicates).
WithEventFilter(predicate.Or(predicate.GenerationChangedPredicate{}, predicate.LabelChangedPredicate{})).
Watches(
&v1beta2.ModuleTemplate{},
handler.EnqueueRequestsFromMapFunc(watch.NewMandatoryTemplateChangeHandler(r).Watch()),
builder.WithPredicates(predicates),
).
Watches(&apicorev1.Secret{}, handler.Funcs{}).
Complete(r); err != nil {
Expand All @@ -43,7 +40,7 @@ func (r *DeletionReconciler) SetupWithManager(mgr ctrl.Manager, opts ctrlruntime
For(&v1beta2.ModuleTemplate{}).
Named(deletionControllerName).
WithOptions(opts).
WithEventFilter(predicate.GenerationChangedPredicate{}).
WithEventFilter(predicate.Or(predicate.GenerationChangedPredicate{}, predicate.LabelChangedPredicate{})).
Complete(r); err != nil {
return fmt.Errorf("failed to setup manager for mandatory module deletion controller: %w", err)
}
Expand Down
10 changes: 8 additions & 2 deletions internal/controller/manifest/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ import (
apicorev1 "k8s.io/api/core/v1"
"k8s.io/client-go/util/workqueue"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/builder"
"sigs.k8s.io/controller-runtime/pkg/client"
ctrlruntime "sigs.k8s.io/controller-runtime/pkg/controller"
"sigs.k8s.io/controller-runtime/pkg/event"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/controller-runtime/pkg/predicate"
"sigs.k8s.io/controller-runtime/pkg/source"

"github.com/kyma-project/lifecycle-manager/api/v1beta2"
Expand Down Expand Up @@ -60,7 +62,9 @@ func SetupWithManager(mgr manager.Manager,
}

addSkrEventToQueueFunc := &handler.Funcs{
GenericFunc: func(ctx context.Context, evnt event.GenericEvent, queue workqueue.TypedRateLimitingInterface[ctrl.Request]) {
GenericFunc: func(ctx context.Context, evnt event.GenericEvent,
queue workqueue.TypedRateLimitingInterface[ctrl.Request],
) {
ctrl.Log.WithName("listener").Info(
fmt.Sprintf(
"event coming from SKR, adding %s to queue",
Expand All @@ -75,7 +79,9 @@ func SetupWithManager(mgr manager.Manager,
if err := ctrl.NewControllerManagedBy(mgr).
For(&v1beta2.Manifest{}).
Named(controllerName).
Watches(&apicorev1.Secret{}, handler.Funcs{}).
Watches(&apicorev1.Secret{}, handler.Funcs{},
builder.WithPredicates(predicate.Or(predicate.GenerationChangedPredicate{},
predicate.LabelChangedPredicate{}))).
WatchesRawSource(skrEventChannel).
WithOptions(opts).
Complete(NewReconciler(mgr, requeueIntervals, manifestMetrics, mandatoryModulesMetrics)); err != nil {
Expand Down
227 changes: 0 additions & 227 deletions pkg/watch/restricted_enqueue_request_for_owner.go

This file was deleted.

0 comments on commit 9ad1b9e

Please sign in to comment.