add CLI flag to show all namespaces

mine
derailed 2019-11-08 17:16:50 -07:00
parent 46cfe8a7d7
commit 9b15803117
2 changed files with 21 additions and 8 deletions

View File

@ -8,6 +8,7 @@ import (
"github.com/derailed/k9s/internal/color" "github.com/derailed/k9s/internal/color"
"github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/config"
"github.com/derailed/k9s/internal/k8s" "github.com/derailed/k9s/internal/k8s"
"github.com/derailed/k9s/internal/resource"
"github.com/derailed/k9s/internal/views" "github.com/derailed/k9s/internal/views"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/rs/zerolog/log" "github.com/rs/zerolog/log"
@ -100,6 +101,10 @@ func loadConfiguration() *config.Config {
k9sCfg.K9s.OverrideCommand(*k9sFlags.Command) k9sCfg.K9s.OverrideCommand(*k9sFlags.Command)
} }
if k9sFlags.AllNamespaces != nil && *k9sFlags.AllNamespaces {
k9sCfg.SetActiveNamespace(resource.AllNamespaces)
}
if err := k9sCfg.Refine(k8sFlags); err != nil { if err := k9sCfg.Refine(k8sFlags); err != nil {
log.Panic().Err(err).Msg("Unable to locate kubeconfig file") log.Panic().Err(err).Msg("Unable to locate kubeconfig file")
} }
@ -150,6 +155,12 @@ func initK9sFlags() {
false, false,
"Turn K9s header off", "Turn K9s header off",
) )
rootCmd.Flags().BoolVarP(
k9sFlags.AllNamespaces,
"all-namespaces", "A",
false,
"Launch K9s in all namespaces",
)
rootCmd.Flags().StringVarP( rootCmd.Flags().StringVarP(
k9sFlags.Command, k9sFlags.Command,
"command", "c", "command", "c",

View File

@ -13,19 +13,21 @@ const (
// Flags represents K9s configuration flags. // Flags represents K9s configuration flags.
type Flags struct { type Flags struct {
RefreshRate *int RefreshRate *int
LogLevel *string LogLevel *string
Headless *bool Headless *bool
Command *string Command *string
AllNamespaces *bool
} }
// NewFlags returns new configuration flags. // NewFlags returns new configuration flags.
func NewFlags() *Flags { func NewFlags() *Flags {
return &Flags{ return &Flags{
RefreshRate: intPtr(DefaultRefreshRate), RefreshRate: intPtr(DefaultRefreshRate),
LogLevel: strPtr(DefaultLogLevel), LogLevel: strPtr(DefaultLogLevel),
Headless: boolPtr(false), Headless: boolPtr(false),
Command: strPtr(DefaultCommand), Command: strPtr(DefaultCommand),
AllNamespaces: boolPtr(false),
} }
} }