in cmd/aks-node-viewer/flag.go [54:91]
func ParseFlags() (Flags, error) {
flagSet := flag.NewFlagSet(os.Args[0], flag.ContinueOnError)
var flags Flags
cfg, err := loadConfigFile()
if err != nil {
return Flags{}, fmt.Errorf("load config file: %w", err)
}
flagSet.BoolVar(&flags.Version, "v", false, "Display aks-node-viewer version")
flagSet.BoolVar(&flags.Version, "version", false, "Display aks-node-viewer version")
contextDefault := cfg.getValue("context", "")
flagSet.StringVar(&flags.Context, "context", contextDefault, "Name of the kubernetes context to use")
nodeSelectorDefault := cfg.getValue("node-selector", "")
flagSet.StringVar(&flags.NodeSelector, "node-selector", nodeSelectorDefault, "Node label selector used to filter nodes, if empty all nodes are selected ")
extraLabelsDefault := cfg.getValue("extra-labels", "")
flagSet.StringVar(&flags.ExtraLabels, "extra-labels", extraLabelsDefault, "A comma separated set of extra node labels to display")
// flag overrides env. var. and env. var. overrides config file
kubeconfigDefault := getStringEnv("KUBECONFIG", cfg.getValue("kubeconfig", filepath.Join(homeDir, ".kube", "config")))
flagSet.StringVar(&flags.Kubeconfig, "kubeconfig", kubeconfigDefault, "Absolute path to the kubeconfig file")
resourcesDefault := cfg.getValue("resources", "cpu")
flagSet.StringVar(&flags.Resources, "resources", resourcesDefault, "List of comma separated resources to monitor")
disablePricingDefault := cfg.getBoolValue("disable-pricing", false)
flagSet.BoolVar(&flags.DisablePricing, "disable-pricing", disablePricingDefault, "Disable pricing lookups")
flagSet.BoolVar(&flags.ShowAttribution, "attribution", false, "Show the Open Source Attribution")
if err := flagSet.Parse(os.Args[1:]); err != nil {
return Flags{}, err
}
return flags, nil
}