From 0ae0338a8fced68f3ce2c82fdb61cc9df9aac2c3 Mon Sep 17 00:00:00 2001 From: Lenin Alevski Date: Mon, 23 Aug 2021 14:09:21 -0700 Subject: [PATCH] Delete Postgres & Prometheus PVCs (#972) Signed-off-by: Lenin Alevski --- operatorapi/operator_tenants.go | 36 ++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/operatorapi/operator_tenants.go b/operatorapi/operator_tenants.go index a8a5c5789..e20c57a4b 100644 --- a/operatorapi/operator_tenants.go +++ b/operatorapi/operator_tenants.go @@ -290,15 +290,41 @@ func deleteTenantAction( } if deletePvcs { - opts := metav1.ListOptions{ - LabelSelector: fmt.Sprintf("%s=%s", miniov2.TenantLabel, tenantName), - } - err = clientset.PersistentVolumeClaims(namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, opts) + tenant, err := operatorClient.TenantGet(ctx, namespace, tenantName, metav1.GetOptions{}) if err != nil { return err } + tenant.EnsureDefaults() + // delete MinIO PVCs + opts := metav1.ListOptions{ + LabelSelector: fmt.Sprintf("%s=%s", miniov2.TenantLabel, tenantName), + } + err = clientset.PersistentVolumeClaims(tenant.Namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, opts) + if err != nil { + return err + } + // delete postgres PVCs + if tenant.HasLogEnabled() { + opts := metav1.ListOptions{ + LabelSelector: fmt.Sprintf("%s=%s", miniov2.LogDBInstanceLabel, tenant.LogStatefulsetName()), + } + err := clientset.PersistentVolumeClaims(tenant.Namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, opts) + if err != nil { + return err + } + } + // delete prometheus PVCs + if tenant.HasPrometheusEnabled() { + opts := metav1.ListOptions{ + LabelSelector: fmt.Sprintf("%s=%s", miniov2.PrometheusInstanceLabel, tenant.PrometheusStatefulsetName()), + } + err := clientset.PersistentVolumeClaims(tenant.Namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, opts) + if err != nil { + return err + } + } // delete all tenant's secrets only if deletePvcs = true - return clientset.Secrets(namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, opts) + return clientset.Secrets(tenant.Namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, opts) } return nil }