diff --git a/controllers/namespace_controller.go b/controllers/namespace_controller.go index 678d5478..00a487d4 100644 --- a/controllers/namespace_controller.go +++ b/controllers/namespace_controller.go @@ -112,13 +112,6 @@ func (r *NamespaceReconciler) addNamespace(name string, tenant *v1alpha1.Tenant) tenant.Status.Namespaces = append(tenant.Status.Namespaces, c[i:]...) } -func (r *NamespaceReconciler) updateNamespaceCount(tenant *v1alpha1.Tenant) error { - return retry.RetryOnConflict(retry.DefaultBackoff, func() error { - tenant.Status.Size = uint(len(tenant.Status.Namespaces)) - return r.Client.Status().Update(context.TODO(), tenant, &client.UpdateOptions{}) - }) -} - func (r NamespaceReconciler) Reconcile(request ctrl.Request) (ctrl.Result, error) { r.Log = r.Log.WithValues("Request.Name", request.Name) r.Log.Info("Reconciling Namespace") @@ -150,10 +143,6 @@ func (r NamespaceReconciler) Reconcile(request ctrl.Request) (ctrl.Result, error r.updateTenantStatus(ns, t) - if err := r.updateNamespaceCount(t); err != nil { - r.Log.Error(err, "cannot update Namespace list", "tenant", t.Name) - } - r.Log.Info("Namespace reconciliation processed") return reconcile.Result{}, nil } diff --git a/controllers/tenant_controller.go b/controllers/tenant_controller.go index cf6a2465..a8c316cc 100644 --- a/controllers/tenant_controller.go +++ b/controllers/tenant_controller.go @@ -113,6 +113,12 @@ func (r TenantReconciler) Reconcile(request ctrl.Request) (ctrl.Result, error) { return reconcile.Result{}, err } + r.Log.Info("Ensuring Namespace count") + if err := r.ensureNamespaceCount(instance); err != nil { + r.Log.Error(err, "Cannot sync Namespace count") + return reconcile.Result{}, err + } + r.Log.Info("Tenant reconciling completed") return ctrl.Result{}, nil } @@ -546,3 +552,10 @@ func (r *TenantReconciler) ensureNodeSelector(tenant *capsulev1alpha1.Tenant) (e return } + +func (r *TenantReconciler) ensureNamespaceCount(tenant *capsulev1alpha1.Tenant) error { + return retry.RetryOnConflict(retry.DefaultBackoff, func() error { + tenant.Status.Size = uint(tenant.Status.Namespaces.Len()) + return r.Client.Status().Update(context.TODO(), tenant, &client.UpdateOptions{}) + }) +}