in main.go [292:331]
func apply(configFile string) (ctrl.Options, config.Configuration, error) {
var err error
options := ctrl.Options{
Scheme: scheme,
}
cfg := config.Configuration{}
if configFile == "" {
scheme.Default(&cfg)
options, err = options.AndFrom(&cfg)
} else {
options, err = options.AndFrom(ctrl.ConfigFile().AtPath(configFile).OfKind(&cfg))
}
if err != nil {
return options, cfg, err
}
if cfg.Integrations != nil {
var errorlist field.ErrorList
availableFrameworks := jobframework.GetIntegrationsList()
path := field.NewPath("integrations", "frameworks")
for _, framework := range cfg.Integrations.Frameworks {
if _, found := jobframework.GetIntegration(framework); !found {
errorlist = append(errorlist, field.NotSupported(path, framework, availableFrameworks))
}
}
if len(errorlist) > 0 {
err := errorlist.ToAggregate()
return options, cfg, err
}
}
cfgStr, err := encodeConfig(&cfg)
if err != nil {
return options, cfg, err
}
setupLog.Info("Successfully loaded configuration", "config", cfgStr)
return options, cfg, nil
}