package main import ( "encoding/base64" "oc-datacenter/conf" _ "oc-datacenter/routers" oclib "cloud.o-forge.io/core/oc-lib" "cloud.o-forge.io/core/oc-lib/tools" beego "github.com/beego/beego/v2/server/web" ) const appname = "oc-datacenter" func main() { // Init the oc-lib oclib.Init(appname) // Load the right config file o := oclib.GetConfLoader() conf.GetConfig().Mode = o.GetStringDefault("MODE", "kubernetes") conf.GetConfig().KubeHost = o.GetStringDefault("KUBERNETES_SERVICE_HOST", "") conf.GetConfig().KubePort = o.GetStringDefault("KUBERNETES_SERVICE_PORT", "6443") sDec, err := base64.StdEncoding.DecodeString(o.GetStringDefault("KUBE_CA", "")) if err == nil { conf.GetConfig().KubeCA = string(sDec) } sDec, err = base64.StdEncoding.DecodeString(o.GetStringDefault("KUBE_CERT", "")) if err == nil { conf.GetConfig().KubeCert = string(sDec) } sDec, err = base64.StdEncoding.DecodeString(o.GetStringDefault("KUBE_DATA", "")) if err == nil { conf.GetConfig().KubeData = string(sDec) } // feed the library with the loaded config oclib.SetConfig( o.GetStringDefault("MONGO_URL", "mongodb://127.0.0.1:27017"), o.GetStringDefault("MONGO_DATABASE", "DC_myDC"), o.GetStringDefault("NATS_URL", "nats://localhost:4222"), o.GetStringDefault("LOKI_URL", ""), o.GetStringDefault("LOG_LEVEL", "info"), ) // Beego init beego.BConfig.AppName = appname beego.BConfig.Listen.HTTPPort = o.GetIntDefault("port", 8080) beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" api := &tools.API{} api.Discovered(beego.BeeApp.Handlers.GetAllControllerInfo()) beego.Run() }