@@ -18,6 +18,8 @@ import (
1818 "strings"
1919 "time"
2020
21+ "github.com/go-logr/logr"
22+
2123 "github.com/rabbitmq/cluster-operator/internal/resource"
2224 "github.com/rabbitmq/cluster-operator/internal/status"
2325 "k8s.io/apimachinery/pkg/api/errors"
@@ -32,7 +34,6 @@ import (
3234
3335 "k8s.io/apimachinery/pkg/runtime"
3436
35- "github.com/go-logr/logr"
3637 ctrl "sigs.k8s.io/controller-runtime"
3738 "sigs.k8s.io/controller-runtime/pkg/client"
3839
@@ -56,7 +57,6 @@ const (
5657// RabbitmqClusterReconciler reconciles a RabbitmqCluster object
5758type RabbitmqClusterReconciler struct {
5859 client.Client
59- Log logr.Logger
6060 Scheme * runtime.Scheme
6161 Namespace string
6262 Recorder record.EventRecorder
@@ -82,7 +82,7 @@ type RabbitmqClusterReconciler struct {
8282// +kubebuilder:rbac:groups="rbac.authorization.k8s.io",resources=rolebindings,verbs=get;list;watch;create;update
8383
8484func (r * RabbitmqClusterReconciler ) Reconcile (ctx context.Context , req ctrl.Request ) (ctrl.Result , error ) {
85- logger := r . Log
85+ logger := ctrl . LoggerFrom ( ctx )
8686
8787 rabbitmqCluster , err := r .getRabbitmqCluster (ctx , req .NamespacedName )
8888
@@ -95,25 +95,19 @@ func (r *RabbitmqClusterReconciler) Reconcile(ctx context.Context, req ctrl.Requ
9595
9696 // Check if the resource has been marked for deletion
9797 if ! rabbitmqCluster .ObjectMeta .DeletionTimestamp .IsZero () {
98- logger .Info ("Deleting RabbitmqCluster" ,
99- "namespace" , rabbitmqCluster .Namespace ,
100- "name" , rabbitmqCluster .Name )
98+ logger .Info ("Deleting" )
10199 return ctrl.Result {}, r .prepareForDeletion (ctx , rabbitmqCluster )
102100 }
103101
104102 // exit if pause reconciliation label is set to true
105103 if v , ok := rabbitmqCluster .Labels [pauseReconciliationLabel ]; ok && v == "true" {
106- logger .Info ("Not reconciling RabbitmqCluster" ,
107- "namespace" , rabbitmqCluster .Namespace ,
108- "name" , rabbitmqCluster .Name )
104+ logger .Info ("Not reconciling RabbitmqCluster" )
109105 r .Recorder .Event (rabbitmqCluster , corev1 .EventTypeWarning ,
110106 "PausedReconciliation" , fmt .Sprintf ("label '%s' is set to true" , pauseReconciliationLabel ))
111107
112108 rabbitmqCluster .Status .SetCondition (status .NoWarnings , corev1 .ConditionFalse , "reconciliation paused" )
113109 if writerErr := r .Status ().Update (ctx , rabbitmqCluster ); writerErr != nil {
114- r .Log .Error (writerErr , "Error trying to Update NoWarnings condition state" ,
115- "namespace" , rabbitmqCluster .Namespace ,
116- "name" , rabbitmqCluster .Name )
110+ logger .Error (writerErr , "Error trying to Update NoWarnings condition state" )
117111 }
118112 return ctrl.Result {}, nil
119113 }
@@ -147,9 +141,7 @@ func (r *RabbitmqClusterReconciler) Reconcile(ctx context.Context, req ctrl.Requ
147141 logger .Error (err , "Failed to marshal cluster spec" )
148142 }
149143
150- logger .Info ("Start reconciling RabbitmqCluster" ,
151- "namespace" , rabbitmqCluster .Namespace ,
152- "name" , rabbitmqCluster .Name ,
144+ logger .Info ("Start reconciling" ,
153145 "spec" , string (instanceSpec ))
154146
155147 resourceBuilder := resource.RabbitmqResourceBuilder {
@@ -176,33 +168,29 @@ func (r *RabbitmqClusterReconciler) Reconcile(ctx context.Context, req ctrl.Requ
176168 })
177169 return apiError
178170 })
179- r .logAndRecordOperationResult (rabbitmqCluster , resource , operationResult , err )
171+ r .logAndRecordOperationResult (logger , rabbitmqCluster , resource , operationResult , err )
180172 if err != nil {
181173 rabbitmqCluster .Status .SetCondition (status .ReconcileSuccess , corev1 .ConditionFalse , "Error" , err .Error ())
182174 if writerErr := r .Status ().Update (ctx , rabbitmqCluster ); writerErr != nil {
183- r .Log .Error (writerErr , "Error trying to Update ReconcileSuccess condition state" ,
184- "namespace" , rabbitmqCluster .Namespace ,
185- "name" , rabbitmqCluster .Name )
175+ logger .Error (writerErr , "Failed to update ReconcileSuccess condition state" )
186176 }
187177 return ctrl.Result {}, err
188178 }
189179
190- if err = r .annotateIfNeeded (ctx , builder , operationResult , rabbitmqCluster ); err != nil {
180+ if err = r .annotateIfNeeded (ctx , logger , builder , operationResult , rabbitmqCluster ); err != nil {
191181 return ctrl.Result {}, err
192182 }
193183 }
194184
195- if requeueAfter , err := r .restartStatefulSetIfNeeded (ctx , rabbitmqCluster ); err != nil || requeueAfter > 0 {
185+ if requeueAfter , err := r .restartStatefulSetIfNeeded (ctx , logger , rabbitmqCluster ); err != nil || requeueAfter > 0 {
196186 return ctrl.Result {RequeueAfter : requeueAfter }, err
197187 }
198188
199189 // Set ReconcileSuccess to true here because all CRUD operations to Kube API related
200190 // to child resources returned no error
201191 rabbitmqCluster .Status .SetCondition (status .ReconcileSuccess , corev1 .ConditionTrue , "Success" , "Created or Updated all child resources" )
202192 if writerErr := r .Status ().Update (ctx , rabbitmqCluster ); writerErr != nil {
203- r .Log .Error (writerErr , "Error trying to Update Custom Resource status" ,
204- "namespace" , rabbitmqCluster .Namespace ,
205- "name" , rabbitmqCluster .Name )
193+ logger .Error (writerErr , "Failed to Update Custom Resource status" )
206194 }
207195
208196 if err := r .setDefaultUserStatus (ctx , rabbitmqCluster ); err != nil {
@@ -215,16 +203,14 @@ func (r *RabbitmqClusterReconciler) Reconcile(ctx context.Context, req ctrl.Requ
215203 return ctrl.Result {RequeueAfter : requeueAfter }, err
216204 }
217205
218- logger .Info ("Finished reconciling RabbitmqCluster" ,
219- "namespace" , rabbitmqCluster .Namespace ,
220- "name" , rabbitmqCluster .Name )
206+ logger .Info ("Finished reconciling" )
221207
222208 return ctrl.Result {}, nil
223209}
224210
225211// logAndRecordOperationResult - helper function to log and record events with message and error
226212// it logs and records 'updated' and 'created' OperationResult, and ignores OperationResult 'unchanged'
227- func (r * RabbitmqClusterReconciler ) logAndRecordOperationResult (rmq runtime.Object , resource runtime.Object , operationResult controllerutil.OperationResult , err error ) {
213+ func (r * RabbitmqClusterReconciler ) logAndRecordOperationResult (logger logr. Logger , rmq runtime.Object , resource runtime.Object , operationResult controllerutil.OperationResult , err error ) {
228214 if operationResult == controllerutil .OperationResultNone && err == nil {
229215 return
230216 }
@@ -239,18 +225,19 @@ func (r *RabbitmqClusterReconciler) logAndRecordOperationResult(rmq runtime.Obje
239225
240226 if err == nil {
241227 msg := fmt .Sprintf ("%sd resource %s of Type %T" , operation , resource .(metav1.Object ).GetName (), resource .(metav1.Object ))
242- r . Log .Info (msg )
228+ logger .Info (msg )
243229 r .Recorder .Event (rmq , corev1 .EventTypeNormal , fmt .Sprintf ("Successful%s" , strings .Title (operation )), msg )
244230 }
245231
246232 if err != nil {
247233 msg := fmt .Sprintf ("failed to %s resource %s of Type %T" , operation , resource .(metav1.Object ).GetName (), resource .(metav1.Object ))
248- r . Log .Error (err , msg )
234+ logger .Error (err , msg )
249235 r .Recorder .Event (rmq , corev1 .EventTypeWarning , fmt .Sprintf ("Failed%s" , strings .Title (operation )), msg )
250236 }
251237}
252238
253239func (r * RabbitmqClusterReconciler ) updateStatus (ctx context.Context , rmq * rabbitmqv1beta1.RabbitmqCluster ) (time.Duration , error ) {
240+ logger := ctrl .LoggerFrom (ctx )
254241 childResources , err := r .getChildResources (ctx , rmq )
255242 if err != nil {
256243 return 0 , err
@@ -263,7 +250,7 @@ func (r *RabbitmqClusterReconciler) updateStatus(ctx context.Context, rmq *rabbi
263250 if ! reflect .DeepEqual (rmq .Status .Conditions , oldConditions ) {
264251 if err = r .Status ().Update (ctx , rmq ); err != nil {
265252 if errors .IsConflict (err ) {
266- r . Log .Info ("failed to update status because of conflict; requeueing..." ,
253+ logger .Info ("failed to update status because of conflict; requeueing..." ,
267254 "namespace" , rmq .Namespace ,
268255 "name" , rmq .Name )
269256 return 2 * time .Second , nil
0 commit comments