From 3b50fbcd16ffa0056b43af8485477e8fac267a6c Mon Sep 17 00:00:00 2001 From: Catherine Fang Date: Mon, 24 Oct 2022 22:39:17 -0400 Subject: [PATCH] Validate options --- main.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/main.go b/main.go index 4bf0d3fb..a191fc3f 100644 --- a/main.go +++ b/main.go @@ -34,6 +34,19 @@ import ( "k8s.io/kube-state-metrics/v2/pkg/options" ) +func validate(opts *options.Options) error { + shardableResource := "pods" + if opts.Nodename == "" { + return nil + } + for _, x := range opts.Resources.AsSlice() { + if x != shardableResource { + return fmt.Errorf("Resource %s can't be sharding by field selector nodeName", x) + } + } + return nil +} + func main() { opts := options.NewOptions() opts.AddFlags() @@ -53,6 +66,11 @@ func main() { os.Exit(0) } + if err := validate(opts); err != nil { + klog.ErrorS(err, "Validating options error") + klog.FlushAndExit(klog.ExitFlushTimeout, 1) + } + var factories []customresource.RegistryFactory if config, set := resolveCustomResourceConfig(opts); set { crf, err := customresourcestate.FromConfig(config)