@@ -186,26 +186,27 @@ func (r *ReconcileMysqlCluster) Reconcile(request reconcile.Request) (reconcile.
186186 return reconcile.Result {}, err
187187 }
188188
189- log .Info ("reconciling cluster" , "cluster" , cluster )
190-
191189 // save old status
192190 status := * cluster .Status .DeepCopy ()
191+ log .Info ("reconciling cluster" , "cluster" , cluster )
193192
194- syncers := [] syncer. Interface {
195- // this syncer mutuates the cluster and updates it. Should be the first syncer
196- newFinalizerSyncer ( r . Client , r . scheme , cluster , r . orcClient ),
197- NewOrcUpdater ( cluster , r . recorder , r . orcClient ),
193+ // this syncer mutates the cluster and updates it. Should be the first syncer
194+ finSyncer := newFinalizerSyncer ( r . Client , r . scheme , cluster , r . orcClient )
195+ if err := syncer . Sync ( context . TODO (), finSyncer , r . recorder ); err != nil {
196+ return reconcile. Result {}, err
198197 }
199198
200- // run the syncers
201- for _ , s := range syncers {
202- if err := syncer .Sync (context .TODO (), s , r .recorder ); err != nil {
203- return reconcile.Result {}, err
204- }
199+ // Set defaults on cluster, should be set here because the syncer from above fetch a new copy of the cluster
200+ // Some filed like .spec.replicas can be nil and throw a panic error.
201+ // By setting defaults will ensure that all fields are set at least with a default value.
202+ r .scheme .Default (cluster .Unwrap ())
203+
204+ orcSyncer := NewOrcUpdater (cluster , r .recorder , r .orcClient )
205+ if err := syncer .Sync (context .TODO (), orcSyncer , r .recorder ); err != nil {
206+ return reconcile.Result {}, err
205207 }
206208
207- // update cluster
208- // TODO: make orcUpdater to update cluster
209+ // update cluster because newOrcUpdater syncer updates the .Status
209210 if ! reflect .DeepEqual (status , cluster .Unwrap ().Status ) && cluster .DeletionTimestamp == nil {
210211 log .V (1 ).Info ("update cluster" , "diff" , deep .Equal (status , cluster .Unwrap ().Status ))
211212
0 commit comments