From 30084a5dd9a3ce09af07cc288ef66e56c2083cc9 Mon Sep 17 00:00:00 2001 From: jt-dd <112463504+jt-dd@users.noreply.github.com> Date: Mon, 9 Dec 2024 14:19:10 +0100 Subject: [PATCH] Fix flags for rootcmd (#301) * Fix flags for rootcmd * Pushing new config path * Fix * add cfgFile to config command * fix logs * fixing remote chain in ingest command * fix unit tests --- cmd/kubehound/config.go | 2 +- cmd/kubehound/dumper.go | 6 +++--- cmd/kubehound/ingest.go | 4 ++-- cmd/kubehound/root.go | 4 ++-- pkg/config/config.go | 3 ++- pkg/config/config_test.go | 4 ++-- pkg/config/ingestor.go | 2 +- 7 files changed, 13 insertions(+), 12 deletions(-) diff --git a/cmd/kubehound/config.go b/cmd/kubehound/config.go index f64b95909..f1ebc1e6a 100644 --- a/cmd/kubehound/config.go +++ b/cmd/kubehound/config.go @@ -20,7 +20,7 @@ var ( Short: "Show the current configuration", Long: `[devOnly] Show the current configuration`, PreRunE: func(cobraCmd *cobra.Command, args []string) error { - return cmd.InitializeKubehoundConfig(cobraCmd.Context(), "", true, true) + return cmd.InitializeKubehoundConfig(cobraCmd.Context(), cfgFile, true, true) }, RunE: func(cobraCmd *cobra.Command, args []string) error { // Adding datadog setup diff --git a/cmd/kubehound/dumper.go b/cmd/kubehound/dumper.go index b4e4b5050..e0d7de076 100644 --- a/cmd/kubehound/dumper.go +++ b/cmd/kubehound/dumper.go @@ -36,7 +36,7 @@ var ( viper.BindPFlag(config.IngestorAPIEndpoint, cobraCmd.Flags().Lookup("khaas-server")) //nolint: errcheck viper.BindPFlag(config.IngestorAPIInsecure, cobraCmd.Flags().Lookup("insecure")) //nolint: errcheck - return cmd.InitializeKubehoundConfig(cobraCmd.Context(), "", true, true) + return cmd.InitializeKubehoundConfig(cobraCmd.Context(), cfgFile, true, true) }, RunE: func(cobraCmd *cobra.Command, args []string) error { // using compress feature @@ -62,7 +62,7 @@ var ( return fmt.Errorf("dump core: %w", err) } // Running the ingestion on KHaaS - if cobraCmd.Flags().Lookup("khaas-server").Value.String() != "" { + if khCfg.Ingestor.API.Endpoint != "" { return core.CoreClientGRPCIngest(cobraCmd.Context(), khCfg.Ingestor, khCfg.Dynamic.ClusterName, khCfg.Dynamic.RunID.String()) } @@ -77,7 +77,7 @@ var ( PreRunE: func(cobraCmd *cobra.Command, args []string) error { viper.Set(config.CollectorFileDirectory, args[0]) - return cmd.InitializeKubehoundConfig(cobraCmd.Context(), "", true, true) + return cmd.InitializeKubehoundConfig(cobraCmd.Context(), cfgFile, true, true) }, RunE: func(cobraCmd *cobra.Command, args []string) error { // Passing the Kubehound config from viper diff --git a/cmd/kubehound/ingest.go b/cmd/kubehound/ingest.go index fe2423d24..8f436086b 100644 --- a/cmd/kubehound/ingest.go +++ b/cmd/kubehound/ingest.go @@ -29,7 +29,7 @@ var ( PreRunE: func(cobraCmd *cobra.Command, args []string) error { cmd.BindFlagCluster(cobraCmd) - return cmd.InitializeKubehoundConfig(cobraCmd.Context(), "", true, true) + return cmd.InitializeKubehoundConfig(cobraCmd.Context(), cfgFile, true, true) }, RunE: func(cobraCmd *cobra.Command, args []string) error { // Passing the Kubehound config from viper @@ -56,7 +56,7 @@ var ( cobraCmd.MarkFlagRequired("cluster") //nolint: errcheck } - return cmd.InitializeKubehoundConfig(cobraCmd.Context(), "", false, true) + return cmd.InitializeKubehoundConfig(cobraCmd.Context(), cfgFile, false, true) }, RunE: func(cobraCmd *cobra.Command, args []string) error { // Passing the Kubehound config from viper diff --git a/cmd/kubehound/root.go b/cmd/kubehound/root.go index fedc496c1..fa82e1eaf 100644 --- a/cmd/kubehound/root.go +++ b/cmd/kubehound/root.go @@ -76,9 +76,9 @@ var ( ) func init() { - rootCmd.Flags().StringVarP(&cfgFile, "config", "c", cfgFile, "application config file") + rootCmd.PersistentFlags().StringVarP(&cfgFile, "config", "c", cfgFile, "application config file") - rootCmd.Flags().BoolVar(&skipBackend, "skip-backend", skipBackend, "skip the auto deployment of the backend stack (janusgraph, mongodb, and UI)") + rootCmd.PersistentFlags().BoolVar(&skipBackend, "skip-backend", skipBackend, "skip the auto deployment of the backend stack (janusgraph, mongodb, and UI)") cmd.InitRootCmd(rootCmd) } diff --git a/pkg/config/config.go b/pkg/config/config.go index a3569f6d8..d00018c11 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -80,7 +80,6 @@ func NewKubehoundConfig(ctx context.Context, configPath string, inLine bool) *Ku var cfg *KubehoundConfig switch { case len(configPath) != 0: - l.Info("Loading application configuration from file", log.String("path", configPath)) cfg = MustLoadConfig(ctx, configPath) case inLine: l.Info("Loading application from inline command") @@ -207,10 +206,12 @@ func unmarshalConfig(v *viper.Viper) (*KubehoundConfig, error) { // NewConfig creates a new config instance from the provided file using viper. func NewConfig(ctx context.Context, v *viper.Viper, configPath string) (*KubehoundConfig, error) { + l := log.Logger(ctx) // Configure default values SetDefaultValues(ctx, v) // Loading inLine config path + l.Info("Loading application configuration from file", log.String("path", configPath)) v.SetConfigType(DefaultConfigType) v.SetConfigFile(configPath) diff --git a/pkg/config/config_test.go b/pkg/config/config_test.go index 6c4aee195..6b91dbd8f 100644 --- a/pkg/config/config_test.go +++ b/pkg/config/config_test.go @@ -81,7 +81,7 @@ func TestMustLoadConfig(t *testing.T) { }, Ingestor: IngestorConfig{ API: IngestorAPIConfig{ - Endpoint: "127.0.0.1:9000", + Endpoint: "", Insecure: false, }, Blob: &BlobConfig{ @@ -158,7 +158,7 @@ func TestMustLoadConfig(t *testing.T) { }, Ingestor: IngestorConfig{ API: IngestorAPIConfig{ - Endpoint: "127.0.0.1:9000", + Endpoint: "", Insecure: false, }, Blob: &BlobConfig{ diff --git a/pkg/config/ingestor.go b/pkg/config/ingestor.go index 324ea762f..5fdf73b1d 100644 --- a/pkg/config/ingestor.go +++ b/pkg/config/ingestor.go @@ -1,7 +1,7 @@ package config const ( - DefaultIngestorAPIEndpoint = "127.0.0.1:9000" + DefaultIngestorAPIEndpoint = "" DefaultIngestorAPIInsecure = false DefaultBucketName = "" // we want to let it empty because we can easily abort if it's not configured DefaultTempDir = "/tmp/kubehound"