Add locking favorite namespaces (#1449) (#1519)

* add locking favorite namespaces (#1449)

* let favorites be set via type default
mine
tyzbit 2022-05-19 11:15:40 -04:00 committed by GitHub
parent 838174a0cc
commit 25e02db101
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 4 deletions

View File

@ -326,6 +326,8 @@ K9s uses aliases to navigate most K8s resources.
coolio: coolio:
namespace: namespace:
active: coolio active: coolio
# With this set, the favorites list won't be updated as you switch namespaces
lockFavorites: false
favorites: favorites:
- cassandra - cassandra
- default - default

View File

@ -259,7 +259,7 @@ func (c *Config) Validate() {
func (c *Config) Dump(msg string) { func (c *Config) Dump(msg string) {
log.Debug().Msgf("Current Cluster: %s\n", c.K9s.CurrentCluster) log.Debug().Msgf("Current Cluster: %s\n", c.K9s.CurrentCluster)
for k, cl := range c.K9s.Clusters { for k, cl := range c.K9s.Clusters {
log.Debug().Msgf("K9s cluster: %s -- %s\n", k, cl.Namespace) log.Debug().Msgf("K9s cluster: %s -- %+v\n", k, cl.Namespace)
} }
} }

View File

@ -298,6 +298,7 @@ var expectedConfig = `k9s:
blee: blee:
namespace: namespace:
active: default active: default
lockFavorites: false
favorites: favorites:
- default - default
view: view:
@ -316,6 +317,7 @@ var expectedConfig = `k9s:
fred: fred:
namespace: namespace:
active: default active: default
lockFavorites: false
favorites: favorites:
- default - default
- kube-public - kube-public
@ -338,6 +340,7 @@ var expectedConfig = `k9s:
minikube: minikube:
namespace: namespace:
active: kube-system active: kube-system
lockFavorites: false
favorites: favorites:
- default - default
- kube-public - kube-public
@ -389,6 +392,7 @@ var resetConfig = `k9s:
blee: blee:
namespace: namespace:
active: default active: default
lockFavorites: false
favorites: favorites:
- default - default
view: view:

View File

@ -14,8 +14,9 @@ const (
// Namespace tracks active and favorites namespaces. // Namespace tracks active and favorites namespaces.
type Namespace struct { type Namespace struct {
Active string `yaml:"active"` Active string `yaml:"active"`
Favorites []string `yaml:"favorites"` LockFavorites bool `yaml:"lockFavorites"`
Favorites []string `yaml:"favorites"`
} }
// NewNamespace create a new namespace configuration. // NewNamespace create a new namespace configuration.
@ -48,7 +49,7 @@ func (n *Namespace) Validate(c client.Connection, ks KubeSettings) {
// SetActive set the active namespace. // SetActive set the active namespace.
func (n *Namespace) SetActive(ns string, ks KubeSettings) error { func (n *Namespace) SetActive(ns string, ks KubeSettings) error {
n.Active = ns n.Active = ns
if ns != "" { if ns != "" && !n.LockFavorites {
n.addFavNS(ns) n.addFavNS(ns)
} }
return nil return nil