63 lines
2.0 KiB
Go
63 lines
2.0 KiB
Go
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"
|
|
"github.com/beego/beego/v2/server/web/filter/cors"
|
|
)
|
|
|
|
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.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
|
|
AllowAllOrigins: true,
|
|
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
|
|
AllowHeaders: []string{"Origin", "Authorization", "Content-Type"},
|
|
ExposeHeaders: []string{"Content-Length", "Content-Type"},
|
|
AllowCredentials: true,
|
|
}))
|
|
beego.Run()
|
|
}
|