diff --git a/deployment/deploy-yml.tmpl b/deployment/deploy-yml.tmpl new file mode 100644 index 0000000..bd0fd4e --- /dev/null +++ b/deployment/deploy-yml.tmpl @@ -0,0 +1,26 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: udi + namespace: udi + labels: + app: udi +spec: + replicas: 1 + selector: + matchLabels: + app: udi + template: + metadata: + labels: + app: udi + spec: + containers: + - name: udi + image: %IMAGE% + env: + - name: UDI_CONF + valueFrom: + secretKeyRef: + name: udi-conf + key: UDI_CONF diff --git a/src/udi/config/config.go b/src/udi/config/config.go index 368837a..a21abb7 100644 --- a/src/udi/config/config.go +++ b/src/udi/config/config.go @@ -4,6 +4,10 @@ import "encoding/json" import "log" import "os" +type HandlerConfigT struct { + DatabaseConnStr string `json:"databaseConnStr"` + Attributes map[string]string `json:"attributes"` +} type ConfigT struct { Mqtt struct { @@ -16,11 +20,7 @@ type ConfigT struct { Topics []string `json:"topics"` Handler string `json:"handler"` } `json:"topicMappings"` - Handlers []struct { - Name string `json:"name"` - DatabaseConnStr string `json:"databaseConnStr"` - Attributes map[string]string `json:"attributes"` - } `json:"handlers"` + Handlers map[string]HandlerConfigT `json:"handlers"` Archiver struct { Dir string `json:"dir"` } diff --git a/src/udi/dispatcher/dispatcher.go b/src/udi/dispatcher/dispatcher.go index 9821174..b22e574 100644 --- a/src/udi/dispatcher/dispatcher.go +++ b/src/udi/dispatcher/dispatcher.go @@ -22,8 +22,8 @@ func InitDispatcher() { go archiver() handlerMap["TTN"] = ttn.NewTTNHandler() handlerMap["IoT"] = iot.NewIoTHandler() - handlerMap["PV"] = pv.NewPvHandler() - handlerMap["MBGW3"] = mbgw3.NewMbgw3Handler() + handlerMap["PV"] = pv.NewPvHandler(config.Config.Handlers["PV"]) + handlerMap["MBGW3"] = mbgw3.NewMbgw3Handler(config.Config.Handlers["MBGW3"]) } func storeMessage(filename string, item handler.MessageT) { diff --git a/src/udi/handlers/mbgw3/mbgw3.go b/src/udi/handlers/mbgw3/mbgw3.go index 836fdff..2e620e8 100644 --- a/src/udi/handlers/mbgw3/mbgw3.go +++ b/src/udi/handlers/mbgw3/mbgw3.go @@ -6,6 +6,7 @@ import ( "time" "strconv" "encoding/json" + "udi/config" "udi/handlers/handler" "udi/database" ) @@ -29,12 +30,12 @@ type Observation struct { } -func NewMbgw3Handler() *Mbgw3Handler { +func NewMbgw3Handler(config config.HandlerConfigT) *Mbgw3Handler { t := &Mbgw3Handler { id: idSeq, } idSeq += 1 - t.dbh = database.NewDatabaseHandle("") + t.dbh = database.NewDatabaseHandle(config.DatabaseConnStr) return t } diff --git a/src/udi/handlers/pv/pv.go b/src/udi/handlers/pv/pv.go index 36829b7..cab86b0 100644 --- a/src/udi/handlers/pv/pv.go +++ b/src/udi/handlers/pv/pv.go @@ -5,6 +5,7 @@ import ( "reflect" "time" "encoding/json" + "udi/config" "udi/handlers/handler" "udi/database" ) @@ -38,12 +39,12 @@ type PvValue struct { } -func NewPvHandler() *PvHandler { +func NewPvHandler(config config.HandlerConfigT) *PvHandler { t := &PvHandler { id: idSeq, } idSeq += 1 - t.dbh = database.NewDatabaseHandle("") + t.dbh = database.NewDatabaseHandle(config.DatabaseConnStr) return t }