MM-11720: disable loading plugin specific config from the environment (#9334)
There are numerous issues here, including some non-determinism in the viper library (fixable) and some annoying behaviour regarding periods in keys, often used by plugin ids (fix unknown). Let's defer the handling of same until we can get our config loading library to do what we need it to do vs. having to hack around viper all the time.
Этот коммит содержится в:
коммит произвёл
Carlos Tadeu Panato Junior
родитель
72560311a2
Коммит
b98ef658ad
@@ -247,6 +247,16 @@ func ReadConfig(r io.Reader, allowEnvironmentOverrides bool) (*model.Config, map
|
||||
|
||||
var config model.Config
|
||||
unmarshalErr := v.Unmarshal(&config)
|
||||
// https://github.com/spf13/viper/issues/324
|
||||
// https://github.com/spf13/viper/issues/348
|
||||
if unmarshalErr == nil {
|
||||
config.PluginSettings.Plugins = make(map[string]map[string]interface{})
|
||||
unmarshalErr = v.UnmarshalKey("pluginsettings.plugins", &config.PluginSettings.Plugins)
|
||||
}
|
||||
if unmarshalErr == nil {
|
||||
config.PluginSettings.PluginStates = make(map[string]*model.PluginState)
|
||||
unmarshalErr = v.UnmarshalKey("pluginsettings.pluginstates", &config.PluginSettings.PluginStates)
|
||||
}
|
||||
|
||||
envConfig := v.EnvSettings()
|
||||
|
||||
@@ -274,6 +284,10 @@ func newViper(allowEnvironmentOverrides bool) *viper.Viper {
|
||||
defaults := getDefaultsFromStruct(model.Config{})
|
||||
|
||||
for key, value := range defaults {
|
||||
if key == "PluginSettings.Plugins" || key == "PluginSettings.PluginStates" {
|
||||
continue
|
||||
}
|
||||
|
||||
v.SetDefault(key, value)
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user