diff --git a/pkg/controller/mysqlcluster/internal/syncer/healthy_replicas_service.go b/pkg/controller/mysqlcluster/internal/syncer/healthy_replicas_service.go index 4c034de8d..2ec2d0942 100644 --- a/pkg/controller/mysqlcluster/internal/syncer/healthy_replicas_service.go +++ b/pkg/controller/mysqlcluster/internal/syncer/healthy_replicas_service.go @@ -17,6 +17,7 @@ limitations under the License. package mysqlcluster import ( + "github.com/imdario/mergo" "github.com/presslabs/controller-util/syncer" core "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -41,9 +42,9 @@ func NewHealthyReplicasSVCSyncer(c client.Client, scheme *runtime.Scheme, cluste service.Spec.Type = core.ServiceTypeLoadBalancer } - // set annotations - if len(cluster.Spec.ReplicaServiceSpec.Annotations) > 0 { - service.ObjectMeta.Annotations = cluster.Spec.ReplicaServiceSpec.Annotations + // merge annotations + if err := mergo.Merge(&service.ObjectMeta.Annotations, cluster.Spec.ReplicaServiceSpec); err != nil { + return err } // set service labels diff --git a/pkg/controller/mysqlcluster/internal/syncer/master_service.go b/pkg/controller/mysqlcluster/internal/syncer/master_service.go index 541b89a2d..156e83904 100644 --- a/pkg/controller/mysqlcluster/internal/syncer/master_service.go +++ b/pkg/controller/mysqlcluster/internal/syncer/master_service.go @@ -17,6 +17,7 @@ limitations under the License. package mysqlcluster import ( + "github.com/imdario/mergo" "github.com/presslabs/controller-util/syncer" core "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -41,9 +42,9 @@ func NewMasterSVCSyncer(c client.Client, scheme *runtime.Scheme, cluster *mysqlc service.Spec.Type = core.ServiceTypeLoadBalancer } - // set annotations - if len(cluster.Spec.MasterServiceSpec.Annotations) > 0 { - service.ObjectMeta.Annotations = cluster.Spec.MasterServiceSpec.Annotations + // merge annotations + if err := mergo.Merge(&service.ObjectMeta.Annotations, cluster.Spec.MasterServiceSpec.Annotations); err != nil { + return err } // set service labels