From 27eac7a2ed3a3248eda908aa5ffc84520d3c9040 Mon Sep 17 00:00:00 2001 From: Max Jonas Werner Date: Wed, 19 Apr 2023 09:51:34 +0200 Subject: [PATCH] globally set RecoverPanic across controllers This way we don't have to remember to set it individually in each controller. Signed-off-by: Max Jonas Werner --- controllers/bucket_controller.go | 2 -- controllers/gitrepository_controller.go | 2 -- controllers/helmchart_controller.go | 2 -- controllers/helmrepository_controller.go | 2 -- controllers/helmrepository_controller_oci.go | 2 -- controllers/ocirepository_controller.go | 2 -- main.go | 6 ++++++ 7 files changed, 6 insertions(+), 12 deletions(-) diff --git a/controllers/bucket_controller.go b/controllers/bucket_controller.go index c761a71f..5f918372 100644 --- a/controllers/bucket_controller.go +++ b/controllers/bucket_controller.go @@ -165,14 +165,12 @@ func (r *BucketReconciler) SetupWithManager(mgr ctrl.Manager) error { func (r *BucketReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, opts BucketReconcilerOptions) error { r.patchOptions = getPatchOptions(bucketReadyCondition.Owned, r.ControllerName) - recoverPanic := true return ctrl.NewControllerManagedBy(mgr). For(&bucketv1.Bucket{}). WithEventFilter(predicate.Or(predicate.GenerationChangedPredicate{}, predicates.ReconcileRequestedPredicate{})). WithOptions(controller.Options{ MaxConcurrentReconciles: opts.MaxConcurrentReconciles, RateLimiter: opts.RateLimiter, - RecoverPanic: &recoverPanic, }). Complete(r) } diff --git a/controllers/gitrepository_controller.go b/controllers/gitrepository_controller.go index d5654fb4..9329cb73 100644 --- a/controllers/gitrepository_controller.go +++ b/controllers/gitrepository_controller.go @@ -156,7 +156,6 @@ func (r *GitRepositoryReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, o r.features = features.FeatureGates() } - recoverPanic := true return ctrl.NewControllerManagedBy(mgr). For(&sourcev1.GitRepository{}, builder.WithPredicates( predicate.Or(predicate.GenerationChangedPredicate{}, predicates.ReconcileRequestedPredicate{}), @@ -164,7 +163,6 @@ func (r *GitRepositoryReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, o WithOptions(controller.Options{ MaxConcurrentReconciles: opts.MaxConcurrentReconciles, RateLimiter: opts.RateLimiter, - RecoverPanic: &recoverPanic, }). Complete(r) } diff --git a/controllers/helmchart_controller.go b/controllers/helmchart_controller.go index acf3b4e3..f246e202 100644 --- a/controllers/helmchart_controller.go +++ b/controllers/helmchart_controller.go @@ -168,7 +168,6 @@ func (r *HelmChartReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, opts return fmt.Errorf("failed setting index fields: %w", err) } - recoverPanic := true return ctrl.NewControllerManagedBy(mgr). For(&helmv1.HelmChart{}, builder.WithPredicates( predicate.Or(predicate.GenerationChangedPredicate{}, predicates.ReconcileRequestedPredicate{}), @@ -191,7 +190,6 @@ func (r *HelmChartReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, opts WithOptions(controller.Options{ MaxConcurrentReconciles: opts.MaxConcurrentReconciles, RateLimiter: opts.RateLimiter, - RecoverPanic: &recoverPanic, }). Complete(r) } diff --git a/controllers/helmrepository_controller.go b/controllers/helmrepository_controller.go index 868a12ef..aa75b070 100644 --- a/controllers/helmrepository_controller.go +++ b/controllers/helmrepository_controller.go @@ -135,7 +135,6 @@ func (r *HelmRepositoryReconciler) SetupWithManager(mgr ctrl.Manager) error { func (r *HelmRepositoryReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, opts HelmRepositoryReconcilerOptions) error { r.patchOptions = getPatchOptions(helmRepositoryReadyCondition.Owned, r.ControllerName) - recoverPanic := true return ctrl.NewControllerManagedBy(mgr). For(&helmv1.HelmRepository{}). WithEventFilter( @@ -150,7 +149,6 @@ func (r *HelmRepositoryReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, WithOptions(controller.Options{ MaxConcurrentReconciles: opts.MaxConcurrentReconciles, RateLimiter: opts.RateLimiter, - RecoverPanic: &recoverPanic, }). Complete(r) } diff --git a/controllers/helmrepository_controller_oci.go b/controllers/helmrepository_controller_oci.go index d561ac65..8de7347d 100644 --- a/controllers/helmrepository_controller_oci.go +++ b/controllers/helmrepository_controller_oci.go @@ -104,7 +104,6 @@ func (r *HelmRepositoryOCIReconciler) SetupWithManagerAndOptions(mgr ctrl.Manage r.unmanagedConditions = conditionsDiff(helmRepositoryReadyCondition.Owned, helmRepositoryOCIOwnedConditions) r.patchOptions = getPatchOptions(helmRepositoryOCIOwnedConditions, r.ControllerName) - recoverPanic := true return ctrl.NewControllerManagedBy(mgr). For(&helmv1.HelmRepository{}). WithEventFilter( @@ -116,7 +115,6 @@ func (r *HelmRepositoryOCIReconciler) SetupWithManagerAndOptions(mgr ctrl.Manage WithOptions(controller.Options{ MaxConcurrentReconciles: opts.MaxConcurrentReconciles, RateLimiter: opts.RateLimiter, - RecoverPanic: &recoverPanic, }). Complete(r) } diff --git a/controllers/ocirepository_controller.go b/controllers/ocirepository_controller.go index 0b6dc2a2..c3b1df4e 100644 --- a/controllers/ocirepository_controller.go +++ b/controllers/ocirepository_controller.go @@ -154,7 +154,6 @@ func (r *OCIRepositoryReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, o r.requeueDependency = opts.DependencyRequeueInterval - recoverPanic := true return ctrl.NewControllerManagedBy(mgr). For(&ociv1.OCIRepository{}, builder.WithPredicates( predicate.Or(predicate.GenerationChangedPredicate{}, predicates.ReconcileRequestedPredicate{}), @@ -162,7 +161,6 @@ func (r *OCIRepositoryReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, o WithOptions(controller.Options{ MaxConcurrentReconciles: opts.MaxConcurrentReconciles, RateLimiter: opts.RateLimiter, - RecoverPanic: &recoverPanic, }). Complete(r) } diff --git a/main.go b/main.go index 84ce6379..65e78bed 100644 --- a/main.go +++ b/main.go @@ -31,9 +31,11 @@ import ( clientgoscheme "k8s.io/client-go/kubernetes/scheme" _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" "k8s.io/client-go/tools/record" + "k8s.io/utils/pointer" ctrl "sigs.k8s.io/controller-runtime" ctrlcache "sigs.k8s.io/controller-runtime/pkg/cache" ctrlclient "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/config/v1alpha1" "github.com/fluxcd/pkg/git" "github.com/fluxcd/pkg/runtime/client" @@ -47,6 +49,7 @@ import ( "github.com/fluxcd/source-controller/api/v1" "github.com/fluxcd/source-controller/api/v1beta2" + // +kubebuilder:scaffold:imports "github.com/fluxcd/source-controller/controllers" @@ -359,6 +362,9 @@ func mustSetupManager(metricsAddr, healthAddr string, watchOpts helper.WatchOpti Logger: ctrl.Log, ClientDisableCacheFor: disableCacheFor, NewCache: newSelectingCache, + Controller: v1alpha1.ControllerConfigurationSpec{ + RecoverPanic: pointer.Bool(true), + }, }) if err != nil { setupLog.Error(err, "unable to start manager")