@@ -131,30 +131,28 @@ func (r *MultigresClusterReconciler) checkChildrenDeleted(ctx context.Context, c
131131}
132132
133133func (r * MultigresClusterReconciler ) reconcileGlobalComponents (ctx context.Context , cluster * multigresv1alpha1.MultigresCluster , resolver * TemplateResolver ) error {
134- var err error
135-
136- topoTplName := cluster .Spec .TemplateDefaults .CoreTemplate
137- if cluster .Spec .GlobalTopoServer .TemplateRef != "" {
138- topoTplName = cluster .Spec .GlobalTopoServer .TemplateRef
134+ if err := r .reconcileGlobalTopoServer (ctx , cluster , resolver ); err != nil {
135+ return err
139136 }
140-
141- topoTpl , err := resolver .ResolveCoreTemplate (ctx , topoTplName )
142- if err != nil {
143- return fmt .Errorf ("failed to resolve topo template: %w" , err )
137+ if err := r .reconcileMultiAdmin (ctx , cluster , resolver ); err != nil {
138+ return err
144139 }
140+ return nil
141+ }
145142
146- adminTplName := cluster .Spec .TemplateDefaults .CoreTemplate
147- if cluster .Spec .MultiAdmin .TemplateRef != "" {
148- adminTplName = cluster .Spec .MultiAdmin .TemplateRef
143+ func (r * MultigresClusterReconciler ) reconcileGlobalTopoServer (ctx context.Context , cluster * multigresv1alpha1.MultigresCluster , resolver * TemplateResolver ) error {
144+ tplName := cluster .Spec .TemplateDefaults .CoreTemplate
145+ if cluster .Spec .GlobalTopoServer .TemplateRef != "" {
146+ tplName = cluster .Spec .GlobalTopoServer .TemplateRef
149147 }
150148
151- adminTpl , err := resolver .ResolveCoreTemplate (ctx , adminTplName )
149+ tpl , err := resolver .ResolveCoreTemplate (ctx , tplName )
152150 if err != nil {
153- return fmt .Errorf ("failed to resolve admin template: %w" , err )
151+ return fmt .Errorf ("failed to resolve topo template: %w" , err )
154152 }
155153
156- topoSpec := ResolveGlobalTopo (& cluster .Spec .GlobalTopoServer , topoTpl )
157- if topoSpec .Etcd != nil {
154+ spec := ResolveGlobalTopo (& cluster .Spec .GlobalTopoServer , tpl )
155+ if spec .Etcd != nil {
158156 ts := & multigresv1alpha1.TopoServer {
159157 ObjectMeta : metav1.ObjectMeta {
160158 Name : cluster .Name + "-global-topo" ,
@@ -164,24 +162,37 @@ func (r *MultigresClusterReconciler) reconcileGlobalComponents(ctx context.Conte
164162 }
165163 if _ , err := controllerutil .CreateOrUpdate (ctx , r .Client , ts , func () error {
166164 replicas := DefaultEtcdReplicas
167- if topoSpec .Etcd .Replicas != nil {
168- replicas = * topoSpec .Etcd .Replicas
165+ if spec .Etcd .Replicas != nil {
166+ replicas = * spec .Etcd .Replicas
169167 }
170168
171169 ts .Spec .Etcd = & multigresv1alpha1.EtcdSpec {
172- Image : topoSpec .Etcd .Image ,
170+ Image : spec .Etcd .Image ,
173171 Replicas : & replicas ,
174- Storage : topoSpec .Etcd .Storage ,
175- Resources : topoSpec .Etcd .Resources ,
172+ Storage : spec .Etcd .Storage ,
173+ Resources : spec .Etcd .Resources ,
176174 }
177175 return controllerutil .SetControllerReference (cluster , ts , r .Scheme )
178176 }); err != nil {
179177 return fmt .Errorf ("failed to create/update global topo: %w" , err )
180178 }
181179 }
180+ return nil
181+ }
182182
183- multiAdminSpec := ResolveMultiAdmin (& cluster .Spec .MultiAdmin , adminTpl )
184- if multiAdminSpec != nil {
183+ func (r * MultigresClusterReconciler ) reconcileMultiAdmin (ctx context.Context , cluster * multigresv1alpha1.MultigresCluster , resolver * TemplateResolver ) error {
184+ tplName := cluster .Spec .TemplateDefaults .CoreTemplate
185+ if cluster .Spec .MultiAdmin .TemplateRef != "" {
186+ tplName = cluster .Spec .MultiAdmin .TemplateRef
187+ }
188+
189+ tpl , err := resolver .ResolveCoreTemplate (ctx , tplName )
190+ if err != nil {
191+ return fmt .Errorf ("failed to resolve admin template: %w" , err )
192+ }
193+
194+ spec := ResolveMultiAdmin (& cluster .Spec .MultiAdmin , tpl )
195+ if spec != nil {
185196 deploy := & appsv1.Deployment {
186197 ObjectMeta : metav1.ObjectMeta {
187198 Name : cluster .Name + "-multiadmin" ,
@@ -191,8 +202,8 @@ func (r *MultigresClusterReconciler) reconcileGlobalComponents(ctx context.Conte
191202 }
192203 if _ , err := controllerutil .CreateOrUpdate (ctx , r .Client , deploy , func () error {
193204 replicas := DefaultAdminReplicas
194- if multiAdminSpec .Replicas != nil {
195- replicas = * multiAdminSpec .Replicas
205+ if spec .Replicas != nil {
206+ replicas = * spec .Replicas
196207 }
197208 deploy .Spec .Replicas = & replicas
198209 deploy .Spec .Selector = & metav1.LabelSelector {
@@ -208,18 +219,17 @@ func (r *MultigresClusterReconciler) reconcileGlobalComponents(ctx context.Conte
208219 {
209220 Name : "multiadmin" ,
210221 Image : cluster .Spec .Images .MultiAdmin ,
211- Resources : multiAdminSpec .Resources ,
222+ Resources : spec .Resources ,
212223 },
213224 },
214- Affinity : multiAdminSpec .Affinity ,
225+ Affinity : spec .Affinity ,
215226 },
216227 }
217228 return controllerutil .SetControllerReference (cluster , deploy , r .Scheme )
218229 }); err != nil {
219230 return fmt .Errorf ("failed to create/update multiadmin: %w" , err )
220231 }
221232 }
222-
223233 return nil
224234}
225235
0 commit comments