From 414c03a8741d616f4fd163ed97cd6eb2747ba408 Mon Sep 17 00:00:00 2001 From: Dario Tranchitella Date: Mon, 5 Jul 2021 13:54:21 +0200 Subject: [PATCH] feat: reconciliation for Tenant state --- controllers/tenant_controller.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/controllers/tenant_controller.go b/controllers/tenant_controller.go index 6f24f998..967b8de7 100644 --- a/controllers/tenant_controller.go +++ b/controllers/tenant_controller.go @@ -67,6 +67,11 @@ func (r TenantReconciler) Reconcile(ctx context.Context, request ctrl.Request) ( r.Log.Error(err, "Error reading the object") return } + // Ensuring the Tenant Status + if err = r.updateTenantStatus(instance); err != nil { + r.Log.Error(err, "Cannot update Tenant status") + return + } // Ensuring all namespaces are collected r.Log.Info("Ensuring all Namespaces are collected") @@ -708,3 +713,15 @@ func (r *TenantReconciler) collectNamespaces(tenant *capsulev1beta1.Tenant) erro return }) } + +func (r *TenantReconciler) updateTenantStatus(tnt *capsulev1beta1.Tenant) error { + return retry.RetryOnConflict(retry.DefaultBackoff, func() (err error) { + if tnt.IsCordoned() { + tnt.Status.State = capsulev1beta1.TenantStateCordoned + } else { + tnt.Status.State = capsulev1beta1.TenantStateActive + } + + return r.Client.Status().Update(context.Background(), tnt) + }) +}