@@ -18,6 +18,8 @@ import (
18
18
"strings"
19
19
"time"
20
20
21
+ "github.com/go-logr/logr"
22
+
21
23
"github.com/rabbitmq/cluster-operator/internal/resource"
22
24
"github.com/rabbitmq/cluster-operator/internal/status"
23
25
"k8s.io/apimachinery/pkg/api/errors"
@@ -32,7 +34,6 @@ import (
32
34
33
35
"k8s.io/apimachinery/pkg/runtime"
34
36
35
- "github.com/go-logr/logr"
36
37
ctrl "sigs.k8s.io/controller-runtime"
37
38
"sigs.k8s.io/controller-runtime/pkg/client"
38
39
@@ -56,7 +57,6 @@ const (
56
57
// RabbitmqClusterReconciler reconciles a RabbitmqCluster object
57
58
type RabbitmqClusterReconciler struct {
58
59
client.Client
59
- Log logr.Logger
60
60
Scheme * runtime.Scheme
61
61
Namespace string
62
62
Recorder record.EventRecorder
@@ -82,7 +82,7 @@ type RabbitmqClusterReconciler struct {
82
82
// +kubebuilder:rbac:groups="rbac.authorization.k8s.io",resources=rolebindings,verbs=get;list;watch;create;update
83
83
84
84
func (r * RabbitmqClusterReconciler ) Reconcile (ctx context.Context , req ctrl.Request ) (ctrl.Result , error ) {
85
- logger := r . Log
85
+ logger := ctrl . LoggerFrom ( ctx )
86
86
87
87
rabbitmqCluster , err := r .getRabbitmqCluster (ctx , req .NamespacedName )
88
88
@@ -95,25 +95,19 @@ func (r *RabbitmqClusterReconciler) Reconcile(ctx context.Context, req ctrl.Requ
95
95
96
96
// Check if the resource has been marked for deletion
97
97
if ! rabbitmqCluster .ObjectMeta .DeletionTimestamp .IsZero () {
98
- logger .Info ("Deleting RabbitmqCluster" ,
99
- "namespace" , rabbitmqCluster .Namespace ,
100
- "name" , rabbitmqCluster .Name )
98
+ logger .Info ("Deleting" )
101
99
return ctrl.Result {}, r .prepareForDeletion (ctx , rabbitmqCluster )
102
100
}
103
101
104
102
// exit if pause reconciliation label is set to true
105
103
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" )
109
105
r .Recorder .Event (rabbitmqCluster , corev1 .EventTypeWarning ,
110
106
"PausedReconciliation" , fmt .Sprintf ("label '%s' is set to true" , pauseReconciliationLabel ))
111
107
112
108
rabbitmqCluster .Status .SetCondition (status .NoWarnings , corev1 .ConditionFalse , "reconciliation paused" )
113
109
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" )
117
111
}
118
112
return ctrl.Result {}, nil
119
113
}
@@ -147,9 +141,7 @@ func (r *RabbitmqClusterReconciler) Reconcile(ctx context.Context, req ctrl.Requ
147
141
logger .Error (err , "Failed to marshal cluster spec" )
148
142
}
149
143
150
- logger .Info ("Start reconciling RabbitmqCluster" ,
151
- "namespace" , rabbitmqCluster .Namespace ,
152
- "name" , rabbitmqCluster .Name ,
144
+ logger .Info ("Start reconciling" ,
153
145
"spec" , string (instanceSpec ))
154
146
155
147
resourceBuilder := resource.RabbitmqResourceBuilder {
@@ -176,33 +168,29 @@ func (r *RabbitmqClusterReconciler) Reconcile(ctx context.Context, req ctrl.Requ
176
168
})
177
169
return apiError
178
170
})
179
- r .logAndRecordOperationResult (rabbitmqCluster , resource , operationResult , err )
171
+ r .logAndRecordOperationResult (logger , rabbitmqCluster , resource , operationResult , err )
180
172
if err != nil {
181
173
rabbitmqCluster .Status .SetCondition (status .ReconcileSuccess , corev1 .ConditionFalse , "Error" , err .Error ())
182
174
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" )
186
176
}
187
177
return ctrl.Result {}, err
188
178
}
189
179
190
- if err = r .annotateIfNeeded (ctx , builder , operationResult , rabbitmqCluster ); err != nil {
180
+ if err = r .annotateIfNeeded (ctx , logger , builder , operationResult , rabbitmqCluster ); err != nil {
191
181
return ctrl.Result {}, err
192
182
}
193
183
}
194
184
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 {
196
186
return ctrl.Result {RequeueAfter : requeueAfter }, err
197
187
}
198
188
199
189
// Set ReconcileSuccess to true here because all CRUD operations to Kube API related
200
190
// to child resources returned no error
201
191
rabbitmqCluster .Status .SetCondition (status .ReconcileSuccess , corev1 .ConditionTrue , "Success" , "Created or Updated all child resources" )
202
192
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" )
206
194
}
207
195
208
196
if err := r .setDefaultUserStatus (ctx , rabbitmqCluster ); err != nil {
@@ -215,16 +203,14 @@ func (r *RabbitmqClusterReconciler) Reconcile(ctx context.Context, req ctrl.Requ
215
203
return ctrl.Result {RequeueAfter : requeueAfter }, err
216
204
}
217
205
218
- logger .Info ("Finished reconciling RabbitmqCluster" ,
219
- "namespace" , rabbitmqCluster .Namespace ,
220
- "name" , rabbitmqCluster .Name )
206
+ logger .Info ("Finished reconciling" )
221
207
222
208
return ctrl.Result {}, nil
223
209
}
224
210
225
211
// logAndRecordOperationResult - helper function to log and record events with message and error
226
212
// 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 ) {
228
214
if operationResult == controllerutil .OperationResultNone && err == nil {
229
215
return
230
216
}
@@ -239,18 +225,19 @@ func (r *RabbitmqClusterReconciler) logAndRecordOperationResult(rmq runtime.Obje
239
225
240
226
if err == nil {
241
227
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 )
243
229
r .Recorder .Event (rmq , corev1 .EventTypeNormal , fmt .Sprintf ("Successful%s" , strings .Title (operation )), msg )
244
230
}
245
231
246
232
if err != nil {
247
233
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 )
249
235
r .Recorder .Event (rmq , corev1 .EventTypeWarning , fmt .Sprintf ("Failed%s" , strings .Title (operation )), msg )
250
236
}
251
237
}
252
238
253
239
func (r * RabbitmqClusterReconciler ) updateStatus (ctx context.Context , rmq * rabbitmqv1beta1.RabbitmqCluster ) (time.Duration , error ) {
240
+ logger := ctrl .LoggerFrom (ctx )
254
241
childResources , err := r .getChildResources (ctx , rmq )
255
242
if err != nil {
256
243
return 0 , err
@@ -263,7 +250,7 @@ func (r *RabbitmqClusterReconciler) updateStatus(ctx context.Context, rmq *rabbi
263
250
if ! reflect .DeepEqual (rmq .Status .Conditions , oldConditions ) {
264
251
if err = r .Status ().Update (ctx , rmq ); err != nil {
265
252
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..." ,
267
254
"namespace" , rmq .Namespace ,
268
255
"name" , rmq .Name )
269
256
return 2 * time .Second , nil
0 commit comments