From 451a9142fd5567f80747e2d1b1daebb080b1160a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Casta=C3=B1o=20Arteaga?= Date: Wed, 8 Jan 2025 12:16:03 +0100 Subject: [PATCH] Set some default configuration values (#4223) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #3946 Signed-off-by: Sergio CastaƱo Arteaga --- cmd/hub/main.go | 23 +++++++++++++++++++++++ cmd/scanner/main.go | 9 ++++++++- cmd/tracker/main.go | 11 +++++++++-- internal/util/config.go | 9 +++++++++ 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/cmd/hub/main.go b/cmd/hub/main.go index 5d82ac88ae..94ce3f3935 100644 --- a/cmd/hub/main.go +++ b/cmd/hub/main.go @@ -29,6 +29,7 @@ import ( "github.com/artifacthub/hub/internal/webhook" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/rs/zerolog/log" + "github.com/spf13/viper" ) func main() { @@ -37,6 +38,7 @@ func main() { if err != nil { log.Fatal().Err(err).Msg("configuration setup failed") } + setCfgDefaults(cfg) fields := map[string]interface{}{"cmd": "hub"} if err := util.SetupLogger(cfg, fields); err != nil { log.Fatal().Err(err).Msg("logger setup failed") @@ -157,3 +159,24 @@ func main() { } log.Info().Msg("hub server stopped") } + +// setCfgDefaults sets the default values for some configuration options. +func setCfgDefaults(cfg *viper.Viper) { + cfg.SetDefault("server.addr", "0.0.0.0:8000") + cfg.SetDefault("server.allowUserSignUp", true) + cfg.SetDefault("server.baseURL", "http://localhost:8000") + cfg.SetDefault("server.cookie.hashKey", "sample hash key") + cfg.SetDefault("server.csrf.authKey", "sample auth key") + cfg.SetDefault("server.metricsAddr", "0.0.0.0:8001") + cfg.SetDefault("server.shutdownTimeout", 10*time.Second) + cfg.SetDefault("server.webBuildPath", "../../web/build") + cfg.SetDefault("server.widgetBuildPath", "../../widget/build") + cfg.SetDefault("theme.colors.primary", "#417598") + cfg.SetDefault("theme.colors.secondary", "#2D4857") + cfg.SetDefault("theme.images.appleTouchIcon192", "/static/media/logo192_v2.png") + cfg.SetDefault("theme.images.appleTouchIcon512", "/static/media/logo512_v2.png") + cfg.SetDefault("theme.images.openGraphImage", "/static/media/artifactHub_v2.png") + cfg.SetDefault("theme.images.shortcutIcon", "/static/media/logo_v2.png") + cfg.SetDefault("theme.images.websiteLogo", "/static/media/logo/artifacthub-brand-white.svg") + cfg.SetDefault("theme.siteName", "Artifact hub") +} diff --git a/cmd/scanner/main.go b/cmd/scanner/main.go index 16b448fb71..dd3b050c2d 100644 --- a/cmd/scanner/main.go +++ b/cmd/scanner/main.go @@ -16,6 +16,7 @@ import ( "github.com/artifacthub/hub/internal/scanner" "github.com/artifacthub/hub/internal/util" "github.com/rs/zerolog/log" + "github.com/spf13/viper" ) func main() { @@ -24,6 +25,7 @@ func main() { if err != nil { log.Fatal().Err(err).Msg("configuration setup failed") } + setCfgDefaults(cfg) fields := map[string]interface{}{"cmd": "scanner"} if err := util.SetupLogger(cfg, fields); err != nil { log.Fatal().Err(err).Msg("logger setup failed") @@ -65,7 +67,6 @@ func main() { if err != nil { log.Fatal().Err(err).Msg("error getting snapshots to scan") } - cfg.SetDefault("scanner.concurrency", 1) limiter := make(chan struct{}, cfg.GetInt("scanner.concurrency")) var wg sync.WaitGroup L: @@ -105,3 +106,9 @@ L: ec.Flush() log.Info().Msg("scanner finished") } + +// setCfgDefaults sets the default values for some configuration options. +func setCfgDefaults(cfg *viper.Viper) { + cfg.SetDefault("scanner.concurrency", 1) + cfg.SetDefault("scanner.trivyURL", "http://localhost:8081") +} diff --git a/cmd/tracker/main.go b/cmd/tracker/main.go index 88e4f8fc48..a040a18dc2 100644 --- a/cmd/tracker/main.go +++ b/cmd/tracker/main.go @@ -19,6 +19,7 @@ import ( "github.com/artifacthub/hub/internal/tracker" "github.com/artifacthub/hub/internal/util" "github.com/rs/zerolog/log" + "github.com/spf13/viper" ) var ( @@ -31,6 +32,7 @@ func main() { if err != nil { log.Fatal().Err(err).Msg("configuration setup failed") } + setCfgDefaults(cfg) fields := map[string]interface{}{"cmd": "tracker"} if err := util.SetupLogger(cfg, fields); err != nil { log.Fatal().Err(err).Msg("logger setup failed") @@ -92,8 +94,6 @@ func main() { if err != nil { log.Fatal().Err(err).Msg("error getting repositories") } - cfg.SetDefault("tracker.concurrency", 1) - cfg.SetDefault("tracker.repositoryTimeout", 15*time.Minute) limiter := make(chan struct{}, cfg.GetInt("tracker.concurrency")) var wg sync.WaitGroup L: @@ -140,3 +140,10 @@ L: ec.Flush() log.Info().Msg("tracker finished") } + +// setCfgDefaults sets the default values for some configuration options. +func setCfgDefaults(cfg *viper.Viper) { + cfg.SetDefault("tracker.categoryModelPath", "../../ml/category/model") + cfg.SetDefault("tracker.concurrency", 1) + cfg.SetDefault("tracker.repositoryTimeout", 15*time.Minute) +} diff --git a/internal/util/config.go b/internal/util/config.go index 112bd53dc0..c530fd6eae 100644 --- a/internal/util/config.go +++ b/internal/util/config.go @@ -26,5 +26,14 @@ func SetupConfig(cmd string) (*viper.Viper, error) { cfg.SetEnvKeyReplacer(strings.NewReplacer("-", "_", ".", "_")) cfg.AutomaticEnv() + // Set some defaults + cfg.SetDefault("db.database", "hub") + cfg.SetDefault("db.host", "localhost") + cfg.SetDefault("db.port", "5432") + cfg.SetDefault("db.user", "postgres") + cfg.SetDefault("images.store", "pg") + cfg.SetDefault("log.level", "debug") + cfg.SetDefault("log.pretty", true) + return cfg, nil }