Skip to content

Commit 27eac7a

Browse files
author
Max Jonas Werner
committed
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 <[email protected]>
1 parent 9d1133f commit 27eac7a

File tree

7 files changed

+6
-12
lines changed

7 files changed

+6
-12
lines changed

controllers/bucket_controller.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,14 +165,12 @@ func (r *BucketReconciler) SetupWithManager(mgr ctrl.Manager) error {
165165
func (r *BucketReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, opts BucketReconcilerOptions) error {
166166
r.patchOptions = getPatchOptions(bucketReadyCondition.Owned, r.ControllerName)
167167

168-
recoverPanic := true
169168
return ctrl.NewControllerManagedBy(mgr).
170169
For(&bucketv1.Bucket{}).
171170
WithEventFilter(predicate.Or(predicate.GenerationChangedPredicate{}, predicates.ReconcileRequestedPredicate{})).
172171
WithOptions(controller.Options{
173172
MaxConcurrentReconciles: opts.MaxConcurrentReconciles,
174173
RateLimiter: opts.RateLimiter,
175-
RecoverPanic: &recoverPanic,
176174
}).
177175
Complete(r)
178176
}

controllers/gitrepository_controller.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,15 +156,13 @@ func (r *GitRepositoryReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, o
156156
r.features = features.FeatureGates()
157157
}
158158

159-
recoverPanic := true
160159
return ctrl.NewControllerManagedBy(mgr).
161160
For(&sourcev1.GitRepository{}, builder.WithPredicates(
162161
predicate.Or(predicate.GenerationChangedPredicate{}, predicates.ReconcileRequestedPredicate{}),
163162
)).
164163
WithOptions(controller.Options{
165164
MaxConcurrentReconciles: opts.MaxConcurrentReconciles,
166165
RateLimiter: opts.RateLimiter,
167-
RecoverPanic: &recoverPanic,
168166
}).
169167
Complete(r)
170168
}

controllers/helmchart_controller.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ func (r *HelmChartReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, opts
168168
return fmt.Errorf("failed setting index fields: %w", err)
169169
}
170170

171-
recoverPanic := true
172171
return ctrl.NewControllerManagedBy(mgr).
173172
For(&helmv1.HelmChart{}, builder.WithPredicates(
174173
predicate.Or(predicate.GenerationChangedPredicate{}, predicates.ReconcileRequestedPredicate{}),
@@ -191,7 +190,6 @@ func (r *HelmChartReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, opts
191190
WithOptions(controller.Options{
192191
MaxConcurrentReconciles: opts.MaxConcurrentReconciles,
193192
RateLimiter: opts.RateLimiter,
194-
RecoverPanic: &recoverPanic,
195193
}).
196194
Complete(r)
197195
}

controllers/helmrepository_controller.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@ func (r *HelmRepositoryReconciler) SetupWithManager(mgr ctrl.Manager) error {
135135
func (r *HelmRepositoryReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, opts HelmRepositoryReconcilerOptions) error {
136136
r.patchOptions = getPatchOptions(helmRepositoryReadyCondition.Owned, r.ControllerName)
137137

138-
recoverPanic := true
139138
return ctrl.NewControllerManagedBy(mgr).
140139
For(&helmv1.HelmRepository{}).
141140
WithEventFilter(
@@ -150,7 +149,6 @@ func (r *HelmRepositoryReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager,
150149
WithOptions(controller.Options{
151150
MaxConcurrentReconciles: opts.MaxConcurrentReconciles,
152151
RateLimiter: opts.RateLimiter,
153-
RecoverPanic: &recoverPanic,
154152
}).
155153
Complete(r)
156154
}

controllers/helmrepository_controller_oci.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ func (r *HelmRepositoryOCIReconciler) SetupWithManagerAndOptions(mgr ctrl.Manage
104104
r.unmanagedConditions = conditionsDiff(helmRepositoryReadyCondition.Owned, helmRepositoryOCIOwnedConditions)
105105
r.patchOptions = getPatchOptions(helmRepositoryOCIOwnedConditions, r.ControllerName)
106106

107-
recoverPanic := true
108107
return ctrl.NewControllerManagedBy(mgr).
109108
For(&helmv1.HelmRepository{}).
110109
WithEventFilter(
@@ -116,7 +115,6 @@ func (r *HelmRepositoryOCIReconciler) SetupWithManagerAndOptions(mgr ctrl.Manage
116115
WithOptions(controller.Options{
117116
MaxConcurrentReconciles: opts.MaxConcurrentReconciles,
118117
RateLimiter: opts.RateLimiter,
119-
RecoverPanic: &recoverPanic,
120118
}).
121119
Complete(r)
122120
}

controllers/ocirepository_controller.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,15 +154,13 @@ func (r *OCIRepositoryReconciler) SetupWithManagerAndOptions(mgr ctrl.Manager, o
154154

155155
r.requeueDependency = opts.DependencyRequeueInterval
156156

157-
recoverPanic := true
158157
return ctrl.NewControllerManagedBy(mgr).
159158
For(&ociv1.OCIRepository{}, builder.WithPredicates(
160159
predicate.Or(predicate.GenerationChangedPredicate{}, predicates.ReconcileRequestedPredicate{}),
161160
)).
162161
WithOptions(controller.Options{
163162
MaxConcurrentReconciles: opts.MaxConcurrentReconciles,
164163
RateLimiter: opts.RateLimiter,
165-
RecoverPanic: &recoverPanic,
166164
}).
167165
Complete(r)
168166
}

main.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@ import (
3131
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3232
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
3333
"k8s.io/client-go/tools/record"
34+
"k8s.io/utils/pointer"
3435
ctrl "sigs.k8s.io/controller-runtime"
3536
ctrlcache "sigs.k8s.io/controller-runtime/pkg/cache"
3637
ctrlclient "sigs.k8s.io/controller-runtime/pkg/client"
38+
"sigs.k8s.io/controller-runtime/pkg/config/v1alpha1"
3739

3840
"github.com/fluxcd/pkg/git"
3941
"github.com/fluxcd/pkg/runtime/client"
@@ -47,6 +49,7 @@ import (
4749

4850
"github.com/fluxcd/source-controller/api/v1"
4951
"github.com/fluxcd/source-controller/api/v1beta2"
52+
5053
// +kubebuilder:scaffold:imports
5154

5255
"github.com/fluxcd/source-controller/controllers"
@@ -359,6 +362,9 @@ func mustSetupManager(metricsAddr, healthAddr string, watchOpts helper.WatchOpti
359362
Logger: ctrl.Log,
360363
ClientDisableCacheFor: disableCacheFor,
361364
NewCache: newSelectingCache,
365+
Controller: v1alpha1.ControllerConfigurationSpec{
366+
RecoverPanic: pointer.Bool(true),
367+
},
362368
})
363369
if err != nil {
364370
setupLog.Error(err, "unable to start manager")

0 commit comments

Comments
 (0)