Skip to content

Commit 37f6fb1

Browse files
authored
Merge pull request #1077 from fluxcd/global-recover
globally set RecoverPanic across controllers
2 parents 9d1133f + 27eac7a commit 37f6fb1

7 files changed

+6
-12
lines changed

controllers/bucket_controller.go

-2
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

-2
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

-2
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

-2
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

-2
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

-2
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

+6
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)