From 4e4e4000a6ab2106b51528c16c99704ab13705bd Mon Sep 17 00:00:00 2001 From: zwwhdls Date: Fri, 2 Aug 2024 14:31:30 +0800 Subject: [PATCH] feat: add all-namespaces flag Signed-off-by: zwwhdls --- cmd/tools/init.go | 1 + cmd/tools/pod.go | 4 ++++ cmd/tools/pvc.go | 4 ++++ pkg/config/config.go | 1 + pkg/list/pvc.go | 4 ++-- 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cmd/tools/init.go b/cmd/tools/init.go index 40206c0..93fa747 100644 --- a/cmd/tools/init.go +++ b/cmd/tools/init.go @@ -31,6 +31,7 @@ var ( func init() { KubernetesConfigFlags = genericclioptions.NewConfigFlags(true) RootCmd.PersistentFlags().StringVarP(&config.MountNamespace, "mount-namespace", "m", "kube-system", "namespace of juicefs csi driver") + RootCmd.PersistentFlags().BoolVarP(&config.AllNamespaces, "all-namespaces", "A", config.AllNamespaces, "If present, list the requested object(s) across all namespaces. Namespace in current context is ignored even if specified with --namespace.") KubernetesConfigFlags.AddFlags(RootCmd.PersistentFlags()) } diff --git a/cmd/tools/pod.go b/cmd/tools/pod.go index 97e102d..a3b4107 100644 --- a/cmd/tools/pod.go +++ b/cmd/tools/pod.go @@ -19,6 +19,7 @@ package tools import ( "github.com/spf13/cobra" + "github.com/juicedata/kubectl-jfs-plugin/pkg/config" "github.com/juicedata/kubectl-jfs-plugin/pkg/list" "github.com/juicedata/kubectl-jfs-plugin/pkg/util" ) @@ -32,6 +33,9 @@ var podCmd = &cobra.Command{ if ns == "" { ns = "default" } + if config.AllNamespaces { + ns = "" + } clientSet, err := util.ClientSet(KubernetesConfigFlags) cobra.CheckErr(err) diff --git a/cmd/tools/pvc.go b/cmd/tools/pvc.go index 01c14fc..6bbb81f 100644 --- a/cmd/tools/pvc.go +++ b/cmd/tools/pvc.go @@ -19,6 +19,7 @@ package tools import ( "github.com/spf13/cobra" + "github.com/juicedata/kubectl-jfs-plugin/pkg/config" "github.com/juicedata/kubectl-jfs-plugin/pkg/list" "github.com/juicedata/kubectl-jfs-plugin/pkg/util" ) @@ -31,6 +32,9 @@ var pvcCmd = &cobra.Command{ if ns == "" { ns = "default" } + if config.AllNamespaces { + ns = "" + } clientSet, err := util.ClientSet(KubernetesConfigFlags) cobra.CheckErr(err) diff --git a/pkg/config/config.go b/pkg/config/config.go index 71817c3..92fbb9b 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -18,6 +18,7 @@ package config var ( MountNamespace string + AllNamespaces bool ) const ( diff --git a/pkg/list/pvc.go b/pkg/list/pvc.go index eaf6e5d..6c86985 100644 --- a/pkg/list/pvc.go +++ b/pkg/list/pvc.go @@ -133,9 +133,9 @@ func (pa *PVCAnalyzer) ListPVC() error { func (pa *PVCAnalyzer) printPVCs() (string, error) { return util.TabbedString(func(out io.Writer) error { w := kdescribe.NewPrefixWriter(out) - w.Write(kdescribe.LEVEL_0, "NAME\tVOLUME\tSTORAGECLASS\tSTATUS\tAGE\n") + w.Write(kdescribe.LEVEL_0, "NAME\tNAMESPACE\tVOLUME\tSTORAGECLASS\tSTATUS\tAGE\n") for _, pvc := range pa.pvcShows { - w.Write(kdescribe.LEVEL_0, "%s\t%s\t%s\t%s\t%s\n", pvc.name, pvc.pv, pvc.sc, pvc.status, util.TranslateTimestampSince(pvc.createAt)) + w.Write(kdescribe.LEVEL_0, "%s\t%s\t%s\t%s\t%s\t%s\n", pvc.name, pvc.namespace, pvc.pv, pvc.sc, pvc.status, util.TranslateTimestampSince(pvc.createAt)) } return nil })