From 61bb830ff01c1db8196114464899346597146bac Mon Sep 17 00:00:00 2001 From: Shubhendu Date: Mon, 16 Oct 2023 11:14:18 +0530 Subject: [PATCH] Allow to retain namespace while operator deletion (#1807) Using a command line flag `--retain-namespace` under command `kubectl minio delete` it would retain the namespace and delete all other resources. Signed-off-by: Shubhendu Ram Tripathi --- kubectl-minio/cmd/delete.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/kubectl-minio/cmd/delete.go b/kubectl-minio/cmd/delete.go index 9725388b8b8..6617639aa5f 100644 --- a/kubectl-minio/cmd/delete.go +++ b/kubectl-minio/cmd/delete.go @@ -47,6 +47,7 @@ type deleteCmd struct { operatorOpts resources.OperatorOptions force bool dangerous bool + retainNS bool } func newDeleteCmd(out io.Writer, errOut io.Writer) *cobra.Command { @@ -82,6 +83,7 @@ func newDeleteCmd(out io.Writer, errOut io.Writer) *cobra.Command { f.StringVarP(&o.operatorOpts.Namespace, "namespace", "n", helpers.DefaultNamespace, "namespace scope for this request") f.BoolVarP(&o.force, "force", "f", false, "allow without confirmation") f.BoolVarP(&o.dangerous, "dangerous", "d", false, "confirm deletion") + f.BoolVarP(&o.retainNS, "retain-namespace", "r", false, "retain operator namespace") return cmd } @@ -133,6 +135,18 @@ func (o *deleteCmd) run(writer io.Writer) error { return err } + // Retain namespace if flag passed + if o.retainNS { + resources := m.Resources() + m.Clear() + for _, res := range resources { + if res.GetName() == o.operatorOpts.Namespace && res.GetKind() == "Namespace" { + continue + } + m.Append(res) + } + } + yml, err := m.AsYaml() if err != nil { return err