Files
oc-schedulerd/conf/conf.go

59 lines
1.4 KiB
Go
Raw Normal View History

2024-07-03 10:21:17 +02:00
package conf
import (
"sync"
"github.com/beego/beego/logs"
"github.com/goraz/onion"
)
type Config struct {
2026-02-25 13:19:46 +01:00
MonitorPath string
Logs string
KubeHost string
KubePort string
KubeCA string
KubeCert string
KubeData string
KubeNamespace string
KubeImage string
2024-07-03 10:21:17 +02:00
}
var instance *Config
var once sync.Once
const defaultConfigFile = "/etc/oc/schedulerd.json"
2024-07-03 10:21:17 +02:00
func init() {
2024-07-03 10:21:17 +02:00
configFile := ""
var o *onion.Onion
l3 := onion.NewEnvLayerPrefix("_", "OCSCHEDULERD_")
2024-07-03 10:21:17 +02:00
l2, err := onion.NewFileLayer(defaultConfigFile, nil)
if err == nil {
logs.Info("Config file found : " + defaultConfigFile)
configFile = defaultConfigFile
}
2024-08-20 09:23:05 +02:00
if configFile == "" || l2 == nil {
2024-07-03 10:21:17 +02:00
logs.Info("No config file found, using env")
o = onion.New(l3)
2024-08-20 09:23:05 +02:00
} else {
2024-07-03 10:21:17 +02:00
o = onion.New(l2, l3)
}
GetConfig().MonitorPath = o.GetStringDefault("MONITORD_PATH", "../oc-monitord/oc-monitord")
2026-02-25 13:19:46 +01:00
GetConfig().KubeHost = o.GetStringDefault("KUBE_HOST", "")
GetConfig().KubePort = o.GetStringDefault("KUBE_PORT", "6443")
GetConfig().KubeCA = o.GetStringDefault("KUBE_CA", "")
GetConfig().KubeCert = o.GetStringDefault("KUBE_CERT", "")
GetConfig().KubeData = o.GetStringDefault("KUBE_DATA", "")
GetConfig().KubeNamespace = o.GetStringDefault("KUBE_NAMESPACE", "default")
GetConfig().KubeImage = o.GetStringDefault("KUBE_IMAGE", "oc-monitord")
2024-07-03 10:21:17 +02:00
}
func GetConfig() *Config {
once.Do(func() {
instance = &Config{}
})
return instance
}