From a1dcfec168b2aae0457803dd7596fcafa2ce2b9b Mon Sep 17 00:00:00 2001 From: anishakj <43978302+anishakj@users.noreply.github.com> Date: Tue, 7 Mar 2023 11:19:40 +0530 Subject: [PATCH] Issue 657: Providing support to update controller service annotations (#658) * Issue 657: Providing support to update controller service annotations Signed-off-by: anisha.kj * Addressing review comments Signed-off-by: anisha.kj * Addressing review comments Signed-off-by: anisha.kj --------- Signed-off-by: anisha.kj --- controllers/pravegacluster_controller.go | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/controllers/pravegacluster_controller.go b/controllers/pravegacluster_controller.go index 200b910af..92ab0376d 100644 --- a/controllers/pravegacluster_controller.go +++ b/controllers/pravegacluster_controller.go @@ -388,11 +388,26 @@ func (r *PravegaClusterReconciler) reconcileControllerService(p *pravegav1beta1. service := MakeControllerService(p) controllerutil.SetControllerReference(p, service, r.Scheme) - err = r.Client.Create(context.TODO(), service) - if err != nil && !errors.IsAlreadyExists(err) { - return err + currentService := &corev1.Service{} + err = r.Client.Get(context.TODO(), types.NamespacedName{Name: service.Name, Namespace: p.Namespace}, currentService) + if err != nil { + if errors.IsNotFound(err) { + err = r.Client.Create(context.TODO(), service) + if err != nil && !errors.IsAlreadyExists(err) { + return err + } + } else { + return err + } + } else { + currentService.ObjectMeta.Labels = service.ObjectMeta.Labels + currentService.ObjectMeta.Annotations = service.ObjectMeta.Annotations + currentService.Spec.Selector = service.Spec.Selector + err = r.Client.Update(context.TODO(), currentService) + if err != nil { + return fmt.Errorf("failed to update service (%s): %v", service.Name, err) + } } - return nil }