@@ -48,7 +48,7 @@ func (r *MultigresClusterReconciler) Reconcile(ctx context.Context, req ctrl.Req
4848 if errors .IsNotFound (err ) {
4949 return ctrl.Result {}, nil
5050 }
51- return ctrl.Result {}, err
51+ return ctrl.Result {}, fmt . Errorf ( "failed to get MultigresCluster: %w" , err )
5252 }
5353
5454 if ! cluster .ObjectMeta .DeletionTimestamp .IsZero () {
@@ -58,7 +58,7 @@ func (r *MultigresClusterReconciler) Reconcile(ctx context.Context, req ctrl.Req
5858 }
5959 controllerutil .RemoveFinalizer (cluster , finalizerName )
6060 if err := r .Update (ctx , cluster ); err != nil {
61- return ctrl.Result {}, err
61+ return ctrl.Result {}, fmt . Errorf ( "failed to remove finalizer: %w" , err )
6262 }
6363 }
6464 return ctrl.Result {}, nil
@@ -67,7 +67,7 @@ func (r *MultigresClusterReconciler) Reconcile(ctx context.Context, req ctrl.Req
6767 if ! controllerutil .ContainsFinalizer (cluster , finalizerName ) {
6868 controllerutil .AddFinalizer (cluster , finalizerName )
6969 if err := r .Update (ctx , cluster ); err != nil {
70- return ctrl.Result {}, err
70+ return ctrl.Result {}, fmt . Errorf ( "failed to add finalizer: %w" , err )
7171 }
7272 return ctrl.Result {}, nil
7373 }
@@ -105,23 +105,23 @@ func (r *MultigresClusterReconciler) checkChildrenDeleted(ctx context.Context, c
105105
106106 cells := & multigresv1alpha1.CellList {}
107107 if err := r .List (ctx , cells , client .InNamespace (cluster .Namespace ), client.MatchingLabels {"multigres.com/cluster" : cluster .Name }); err != nil {
108- return err
108+ return fmt . Errorf ( "failed to list cells: %w" , err )
109109 }
110110 if len (cells .Items ) > 0 {
111111 return fmt .Errorf ("cells still exist" )
112112 }
113113
114114 tgs := & multigresv1alpha1.TableGroupList {}
115115 if err := r .List (ctx , tgs , client .InNamespace (cluster .Namespace ), client.MatchingLabels {"multigres.com/cluster" : cluster .Name }); err != nil {
116- return err
116+ return fmt . Errorf ( "failed to list tablegroups: %w" , err )
117117 }
118118 if len (tgs .Items ) > 0 {
119119 return fmt .Errorf ("tablegroups still exist" )
120120 }
121121
122122 ts := & multigresv1alpha1.TopoServerList {}
123123 if err := r .List (ctx , ts , client .InNamespace (cluster .Namespace ), client.MatchingLabels {"multigres.com/cluster" : cluster .Name }); err != nil {
124- return err
124+ return fmt . Errorf ( "failed to list toposervers: %w" , err )
125125 }
126126 if len (ts .Items ) > 0 {
127127 return fmt .Errorf ("toposervers still exist" )
@@ -140,7 +140,7 @@ func (r *MultigresClusterReconciler) reconcileGlobalComponents(ctx context.Conte
140140
141141 topoTpl , err := resolver .ResolveCoreTemplate (ctx , topoTplName )
142142 if err != nil {
143- return err
143+ return fmt . Errorf ( "failed to resolve topo template: %w" , err )
144144 }
145145
146146 adminTplName := cluster .Spec .TemplateDefaults .CoreTemplate
@@ -150,7 +150,7 @@ func (r *MultigresClusterReconciler) reconcileGlobalComponents(ctx context.Conte
150150
151151 adminTpl , err := resolver .ResolveCoreTemplate (ctx , adminTplName )
152152 if err != nil {
153- return err
153+ return fmt . Errorf ( "failed to resolve admin template: %w" , err )
154154 }
155155
156156 topoSpec := ResolveGlobalTopo (& cluster .Spec .GlobalTopoServer , topoTpl )
@@ -176,7 +176,7 @@ func (r *MultigresClusterReconciler) reconcileGlobalComponents(ctx context.Conte
176176 }
177177 return controllerutil .SetControllerReference (cluster , ts , r .Scheme )
178178 }); err != nil {
179- return err
179+ return fmt . Errorf ( "failed to create/update global topo: %w" , err )
180180 }
181181 }
182182
@@ -216,7 +216,7 @@ func (r *MultigresClusterReconciler) reconcileGlobalComponents(ctx context.Conte
216216 }
217217 return controllerutil .SetControllerReference (cluster , deploy , r .Scheme )
218218 }); err != nil {
219- return err
219+ return fmt . Errorf ( "failed to create/update multiadmin: %w" , err )
220220 }
221221 }
222222
@@ -226,15 +226,15 @@ func (r *MultigresClusterReconciler) reconcileGlobalComponents(ctx context.Conte
226226func (r * MultigresClusterReconciler ) reconcileCells (ctx context.Context , cluster * multigresv1alpha1.MultigresCluster , resolver * TemplateResolver ) error {
227227 existingCells := & multigresv1alpha1.CellList {}
228228 if err := r .List (ctx , existingCells , client .InNamespace (cluster .Namespace ), client.MatchingLabels {"multigres.com/cluster" : cluster .Name }); err != nil {
229- return err
229+ return fmt . Errorf ( "failed to list existing cells: %w" , err )
230230 }
231231
232232 globalTopoRef , err := r .getGlobalTopoRef (ctx , cluster , resolver )
233233 if err != nil {
234- return err
234+ return fmt . Errorf ( "failed to get global topo ref: %w" , err )
235235 }
236236
237- activeCellNames := make (map [string ]bool )
237+ activeCellNames := make (map [string ]bool , len ( cluster . Spec . Cells ) )
238238
239239 allCellNames := []multigresv1alpha1.CellName {}
240240 for _ , cellCfg := range cluster .Spec .Cells {
@@ -246,7 +246,7 @@ func (r *MultigresClusterReconciler) reconcileCells(ctx context.Context, cluster
246246
247247 tpl , err := resolver .ResolveCellTemplate (ctx , cellCfg .CellTemplate )
248248 if err != nil {
249- return err
249+ return fmt . Errorf ( "failed to resolve cell template '%s': %w" , cellCfg . CellTemplate , err )
250250 }
251251
252252 gatewaySpec , localTopoSpec := MergeCellConfig (tpl , cellCfg .Overrides , cellCfg .Spec )
@@ -280,14 +280,14 @@ func (r *MultigresClusterReconciler) reconcileCells(ctx context.Context, cluster
280280
281281 return controllerutil .SetControllerReference (cluster , cellCR , r .Scheme )
282282 }); err != nil {
283- return err
283+ return fmt . Errorf ( "failed to create/update cell '%s': %w" , cellCfg . Name , err )
284284 }
285285 }
286286
287287 for _ , item := range existingCells .Items {
288288 if ! activeCellNames [item .Spec .Name ] {
289289 if err := r .Delete (ctx , & item ); err != nil {
290- return err
290+ return fmt . Errorf ( "failed to delete orphaned cell '%s': %w" , item . Name , err )
291291 }
292292 }
293293 }
@@ -298,12 +298,12 @@ func (r *MultigresClusterReconciler) reconcileCells(ctx context.Context, cluster
298298func (r * MultigresClusterReconciler ) reconcileDatabases (ctx context.Context , cluster * multigresv1alpha1.MultigresCluster , resolver * TemplateResolver ) error {
299299 existingTGs := & multigresv1alpha1.TableGroupList {}
300300 if err := r .List (ctx , existingTGs , client .InNamespace (cluster .Namespace ), client.MatchingLabels {"multigres.com/cluster" : cluster .Name }); err != nil {
301- return err
301+ return fmt . Errorf ( "failed to list existing tablegroups: %w" , err )
302302 }
303303
304304 globalTopoRef , err := r .getGlobalTopoRef (ctx , cluster , resolver )
305305 if err != nil {
306- return err
306+ return fmt . Errorf ( "failed to get global topo ref: %w" , err )
307307 }
308308
309309 activeTGNames := make (map [string ]bool )
@@ -322,7 +322,7 @@ func (r *MultigresClusterReconciler) reconcileDatabases(ctx context.Context, clu
322322 for _ , shard := range tg .Shards {
323323 tpl , err := resolver .ResolveShardTemplate (ctx , shard .ShardTemplate )
324324 if err != nil {
325- return err
325+ return fmt . Errorf ( "failed to resolve shard template '%s': %w" , shard . ShardTemplate , err )
326326 }
327327
328328 orch , pools := MergeShardConfig (tpl , shard .Overrides , shard .Spec )
@@ -378,15 +378,15 @@ func (r *MultigresClusterReconciler) reconcileDatabases(ctx context.Context, clu
378378
379379 return controllerutil .SetControllerReference (cluster , tgCR , r .Scheme )
380380 }); err != nil {
381- return err
381+ return fmt . Errorf ( "failed to create/update tablegroup '%s': %w" , tgNameFull , err )
382382 }
383383 }
384384 }
385385
386386 for _ , item := range existingTGs .Items {
387387 if ! activeTGNames [item .Name ] {
388388 if err := r .Delete (ctx , & item ); err != nil {
389- return err
389+ return fmt . Errorf ( "failed to delete orphaned tablegroup '%s': %w" , item . Name , err )
390390 }
391391 }
392392 }
@@ -402,7 +402,7 @@ func (r *MultigresClusterReconciler) getGlobalTopoRef(ctx context.Context, clust
402402
403403 topoTpl , err := resolver .ResolveCoreTemplate (ctx , topoTplName )
404404 if err != nil {
405- return multigresv1alpha1.GlobalTopoServerRef {}, err
405+ return multigresv1alpha1.GlobalTopoServerRef {}, fmt . Errorf ( "failed to resolve global topo template: %w" , err )
406406 }
407407
408408 topoSpec := ResolveGlobalTopo (& cluster .Spec .GlobalTopoServer , topoTpl )
@@ -428,7 +428,7 @@ func (r *MultigresClusterReconciler) updateStatus(ctx context.Context, cluster *
428428
429429 cells := & multigresv1alpha1.CellList {}
430430 if err := r .List (ctx , cells , client .InNamespace (cluster .Namespace ), client.MatchingLabels {"multigres.com/cluster" : cluster .Name }); err != nil {
431- return err
431+ return fmt . Errorf ( "failed to list cells for status: %w" , err )
432432 }
433433
434434 for _ , c := range cells .Items {
@@ -447,7 +447,7 @@ func (r *MultigresClusterReconciler) updateStatus(ctx context.Context, cluster *
447447
448448 tgs := & multigresv1alpha1.TableGroupList {}
449449 if err := r .List (ctx , tgs , client .InNamespace (cluster .Namespace ), client.MatchingLabels {"multigres.com/cluster" : cluster .Name }); err != nil {
450- return err
450+ return fmt . Errorf ( "failed to list tablegroups for status: %w" , err )
451451 }
452452
453453 dbShards := make (map [string ]struct {
@@ -490,7 +490,11 @@ func (r *MultigresClusterReconciler) updateStatus(ctx context.Context, cluster *
490490 LastTransitionTime : metav1 .Now (),
491491 })
492492
493- return r .Status ().Update (ctx , cluster )
493+ if err := r .Status ().Update (ctx , cluster ); err != nil {
494+ return fmt .Errorf ("failed to update cluster status: %w" , err )
495+ }
496+
497+ return nil
494498}
495499
496500// SetupWithManager sets up the controller with the Manager.
0 commit comments