From 647ea88e91bb253d76d782480319f5997f9a3b0a Mon Sep 17 00:00:00 2001 From: neogopher Date: Thu, 30 Jan 2025 21:10:17 +0530 Subject: [PATCH] Remove the ServiceBlockDeletion Annotation once the virtual service exists --- pkg/controllers/resources/services/syncer.go | 4 ++-- pkg/controllers/resources/services/translate.go | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pkg/controllers/resources/services/syncer.go b/pkg/controllers/resources/services/syncer.go index 74e79168b6..6f2f85194d 100644 --- a/pkg/controllers/resources/services/syncer.go +++ b/pkg/controllers/resources/services/syncer.go @@ -126,8 +126,8 @@ func (s *serviceSyncer) SyncToVirtual(ctx *synccontext.SyncContext, pObj client. // created, because vcluster intercepts those calls and first creates a service inside the host // cluster and then inside the virtual cluster. pService := pObj.(*corev1.Service) - if pService.Annotations != nil && pService.Annotations[ServiceBlockDeletion] == "true" { - return ctrl.Result{Requeue: true}, nil + if pService.Annotations != nil && pService.Annotations[ServiceBlockDeletion] == "true" && time.Since(pService.CreationTimestamp.Time) < 2*time.Minute { + return ctrl.Result{RequeueAfter: 10 * time.Second}, nil } return syncer.DeleteObject(ctx, pObj, "virtual object was deleted") diff --git a/pkg/controllers/resources/services/translate.go b/pkg/controllers/resources/services/translate.go index 2b5c046853..3b7f221dc8 100644 --- a/pkg/controllers/resources/services/translate.go +++ b/pkg/controllers/resources/services/translate.go @@ -82,9 +82,8 @@ func (s *serviceSyncer) translateUpdate(ctx context.Context, pObj, vObj *corev1. // check annotations _, updatedAnnotations, updatedLabels := s.TranslateMetadataUpdate(ctx, vObj, pObj) // remove the ServiceBlockDeletion annotation if it's not needed - if vObj.Spec.ClusterIP == pObj.Spec.ClusterIP { - delete(updatedAnnotations, ServiceBlockDeletion) - } + delete(updatedAnnotations, ServiceBlockDeletion) + if !equality.Semantic.DeepEqual(updatedAnnotations, pObj.Annotations) || !equality.Semantic.DeepEqual(updatedLabels, pObj.Labels) { updated = translator.NewIfNil(updated, pObj) updated.Annotations = updatedAnnotations