diff --git a/client/client.go b/client/client.go index 92ac865..c8a9876 100644 --- a/client/client.go +++ b/client/client.go @@ -14,6 +14,7 @@ import ( type Args struct { Namespace string KubeConfig string + NamespaceBlacklist []string } func Run(args *Args) error { @@ -36,12 +37,26 @@ func Run(args *Args) error { return fmt.Errorf("failed to merge responses: %v", err) } + filterBlacklist(resources, args.NamespaceBlacklist) + if err := Write(resources, args); err != nil { return fmt.Errorf("faild to write: %v", err) } return nil } +func filterBlacklist(resources map[string]*PodResource, blacklist []string) { + blMap := make(map[string]struct{}) + for _, ns := range blacklist { + blMap[ns] = struct{}{} + } + for k, v := range resources { + if _, f := blMap[v.Namespace]; f { + delete(resources, k) + } + } +} + func FetchMetrics(cfg *rest.Config, ns string) (map[string]*PodResource, error) { metricsclient, err := metrics.NewForConfig(cfg) if err != nil { diff --git a/cmd/cmd.go b/cmd/cmd.go index 7c516f5..a6e34b6 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -12,8 +12,9 @@ import ( var ( args = &client.Args{ - Namespace: "", - KubeConfig: path.Join(os.Getenv("HOME"), ".kube", "config"), + Namespace: "", + KubeConfig: path.Join(os.Getenv("HOME"), ".kube", "config"), + NamespaceBlacklist: []string{"kube-system"}, } )