From 46fc65a9888dbdbd84165a59c07b52a0ca21d8cc Mon Sep 17 00:00:00 2001 From: Dario Tranchitella Date: Tue, 15 Jun 2021 15:11:06 +0200 Subject: [PATCH] fix: avoiding concurrent map write --- controllers/tenant_controller.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/controllers/tenant_controller.go b/controllers/tenant_controller.go index 7ca7dcd4..96e40bf3 100644 --- a/controllers/tenant_controller.go +++ b/controllers/tenant_controller.go @@ -466,9 +466,10 @@ func (r *TenantReconciler) syncNamespaceMetadata(namespace string, tnt *capsulev } res, conflictErr = controllerutil.CreateOrUpdate(context.TODO(), r.Client, ns, func() error { - a := tnt.Spec.NamespacesMetadata.AdditionalAnnotations - if a == nil { - a = make(map[string]string) + a := make(map[string]string) + + for k, v := range tnt.Spec.NamespacesMetadata.AdditionalAnnotations { + a[k] = v } if tnt.Spec.NodeSelector != nil { @@ -508,10 +509,12 @@ func (r *TenantReconciler) syncNamespaceMetadata(namespace string, tnt *capsulev ns.SetAnnotations(a) - l := tnt.Spec.NamespacesMetadata.AdditionalLabels - if l == nil { - l = make(map[string]string) + l := make(map[string]string) + + for k, v := range tnt.Spec.NamespacesMetadata.AdditionalLabels { + l[k] = v } + l["name"] = namespace capsuleLabel, _ := capsulev1alpha1.GetTypeLabel(&capsulev1alpha1.Tenant{}) l[capsuleLabel] = tnt.GetName()