@@ -210,11 +210,12 @@ func (r *Reconciler) syncRemoteObjects(
210210 remoteDatabaseNodeSet .SetPrimaryResourceAnnotations (localObj )
211211
212212 // Check object existence in local cluster
213- objExist := false
214- if err = r .Client .Get (ctx , types.NamespacedName {
213+ err = r .Client .Get (ctx , types.NamespacedName {
215214 Name : remoteObj .GetName (),
216215 Namespace : remoteObj .GetNamespace (),
217- }, localObj ); err != nil {
216+ }, localObj )
217+ //nolint:nestif
218+ if err != nil {
218219 if ! apierrors .IsNotFound (err ) {
219220 r .Recorder .Event (
220221 remoteDatabaseNodeSet ,
@@ -224,10 +225,24 @@ func (r *Reconciler) syncRemoteObjects(
224225 )
225226 return Stop , ctrl.Result {RequeueAfter : DefaultRequeueDelay }, err
226227 }
227- objExist = true
228- }
229-
230- if objExist {
228+ // Object does not exist in local cluster
229+ // Try to create resource in remote cluster
230+ if err := r .Client .Create (ctx , localObj ); err != nil {
231+ r .Recorder .Event (
232+ remoteDatabaseNodeSet ,
233+ corev1 .EventTypeWarning ,
234+ "ControllerError" ,
235+ fmt .Sprintf ("Failed to create resource %s with name %s: %s" , remoteObjGVK .Kind , remoteObj .GetName (), err ),
236+ )
237+ return Stop , ctrl.Result {RequeueAfter : DefaultRequeueDelay }, nil
238+ }
239+ r .Recorder .Event (
240+ remoteDatabaseNodeSet ,
241+ corev1 .EventTypeNormal ,
242+ "Provisioning" ,
243+ fmt .Sprintf ("RemoteSync CREATE resource %s with name %s" , remoteObjGVK .Kind , remoteObj .GetName ()),
244+ )
245+ } else {
231246 // Update client.Object for local object with spec from remote object
232247 updatedObj := resources .UpdateResource (localObj , remoteObj )
233248 remoteDatabaseNodeSet .SetPrimaryResourceAnnotations (updatedObj )
@@ -250,24 +265,6 @@ func (r *Reconciler) syncRemoteObjects(
250265 fmt .Sprintf ("RemoteSync UPDATE resource %s with name %s resourceVersion %s" , remoteObjGVK .Kind , remoteObj .GetName (), remoteObj .GetResourceVersion ()),
251266 )
252267 }
253- } else {
254- // Object does not exist in local cluster
255- // Try to create resource in remote cluster
256- if err := r .Client .Create (ctx , localObj ); err != nil {
257- r .Recorder .Event (
258- remoteDatabaseNodeSet ,
259- corev1 .EventTypeWarning ,
260- "ControllerError" ,
261- fmt .Sprintf ("Failed to create resource %s with name %s: %s" , remoteObjGVK .Kind , remoteObj .GetName (), err ),
262- )
263- return Stop , ctrl.Result {RequeueAfter : DefaultRequeueDelay }, nil
264- }
265- r .Recorder .Event (
266- remoteDatabaseNodeSet ,
267- corev1 .EventTypeNormal ,
268- "Provisioning" ,
269- fmt .Sprintf ("RemoteSync CREATE resource %s with name %s" , remoteObjGVK .Kind , remoteObj .GetName ()),
270- )
271268 }
272269
273270 // Update status for remote resource in RemoteStorageNodeSet object
0 commit comments