Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
9ae09494d2
|
|||
58f17be962
|
|||
0eb133cede
|
@ -3,7 +3,7 @@ FROM python:3.10-bullseye
|
|||||||
ENV MQTT_LOGIN "-"
|
ENV MQTT_LOGIN "-"
|
||||||
ENV MQTT_PASSWORD "-"
|
ENV MQTT_PASSWORD "-"
|
||||||
ENV MQTT_BROKER "-"
|
ENV MQTT_BROKER "-"
|
||||||
ENV MQTT_PORT "8883"
|
ENV MQTT_PORT "1883"
|
||||||
ENV MQTT_CA ""
|
ENV MQTT_CA ""
|
||||||
|
|
||||||
ENV PGHOST ""
|
ENV PGHOST ""
|
||||||
|
11
deployment/install.sh
Executable file
11
deployment/install.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
NAMESPACE=$(cat namespace)
|
||||||
|
~/Workspace/MyKubernetesEnv/tools/create-namespace.sh $NAMESPACE
|
||||||
|
|
||||||
|
./roll-db-credential.sh
|
||||||
|
|
||||||
|
kubectl -f install.yml -n $NAMESPACE apply
|
||||||
|
|
||||||
|
|
36
deployment/install.yml
Normal file
36
deployment/install.yml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: cemmetering
|
||||||
|
data:
|
||||||
|
MQTT_BROKER: "emqx01-anonymous-cluster-internal.broker.svc.cluster.local"
|
||||||
|
MQTT_PORT: "1883"
|
||||||
|
PGDATABASE: "cem_monitoring_berresheim"
|
||||||
|
PGHOST: "timescaledb.database.svc.cluster.local"
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: cemmetering
|
||||||
|
labels:
|
||||||
|
app: cemmetering
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: cemmetering
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: cemmetering
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: cemmetering
|
||||||
|
image: wollud1969/cemmetering-preprocessor:1.0.2
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: cemmetering
|
||||||
|
- secretRef:
|
||||||
|
name: cemmetering-db-cred
|
||||||
|
|
||||||
|
|
1
deployment/namespace
Normal file
1
deployment/namespace
Normal file
@ -0,0 +1 @@
|
|||||||
|
berresheim
|
33
deployment/roll-db-credential.sh
Executable file
33
deployment/roll-db-credential.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
. ~/Workspace/MyKubernetesEnv/ENVDB
|
||||||
|
|
||||||
|
DATABASE=cem_monitoring_berresheim
|
||||||
|
LOGIN=cem_preprocessor
|
||||||
|
PASSWORD=`openssl rand -base64 24`
|
||||||
|
NAMESPACE=`cat namespace`
|
||||||
|
|
||||||
|
psql <<EOF
|
||||||
|
do
|
||||||
|
\$\$
|
||||||
|
begin
|
||||||
|
if not exists (SELECT * FROM pg_user WHERE usename = '$LOGIN') then
|
||||||
|
CREATE USER $LOGIN WITH PASSWORD '$PASSWORD';
|
||||||
|
else
|
||||||
|
ALTER USER $LOGIN WITH PASSWORD '$PASSWORD';
|
||||||
|
end if;
|
||||||
|
end
|
||||||
|
\$\$
|
||||||
|
;
|
||||||
|
commit;
|
||||||
|
EOF
|
||||||
|
|
||||||
|
kubectl create secret generic cemmetering-db-cred \
|
||||||
|
--dry-run=client \
|
||||||
|
-o yaml \
|
||||||
|
--save-config \
|
||||||
|
--from-literal=PGUSER="$LOGIN" \
|
||||||
|
--from-literal=PGPASSWORD="$PASSWORD" | \
|
||||||
|
kubectl apply -f - -n $NAMESPACE
|
||||||
|
|
||||||
|
|
@ -29,7 +29,7 @@ class JustIgnoreMessage (Exception):
|
|||||||
self.message = message
|
self.message = message
|
||||||
|
|
||||||
class DbOp(object):
|
class DbOp(object):
|
||||||
def __init__(self, config):
|
def __init__(self):
|
||||||
self.conn = None
|
self.conn = None
|
||||||
|
|
||||||
def __getConn(self):
|
def __getConn(self):
|
||||||
@ -125,7 +125,7 @@ def mqttOnMessageCallback(client, userdata, message):
|
|||||||
|
|
||||||
(appId, converterId, deviceId, variableId) = splitTopic(topic)
|
(appId, converterId, deviceId, variableId) = splitTopic(topic)
|
||||||
|
|
||||||
dbh = DbOp(config)
|
dbh = DbOp()
|
||||||
variable = dbh.getVariable(appId, converterId, deviceId, variableId)
|
variable = dbh.getVariable(appId, converterId, deviceId, variableId)
|
||||||
measurement = {
|
measurement = {
|
||||||
"vid": variable["vid"],
|
"vid": variable["vid"],
|
||||||
@ -150,21 +150,6 @@ logger.info("preprocess starting")
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
REQUIRED_CONFIG_OPTIONS = [
|
|
||||||
'MQTT_LOGIN',
|
|
||||||
'MQTT_PASSWORD',
|
|
||||||
'MQTT_BROKER',
|
|
||||||
'MQTT_PORT',
|
|
||||||
'MQTT_CA'
|
|
||||||
]
|
|
||||||
|
|
||||||
config = {}
|
|
||||||
for rco in REQUIRED_CONFIG_OPTIONS:
|
|
||||||
try:
|
|
||||||
config[rco] = os.environ[rco]
|
|
||||||
except KeyError:
|
|
||||||
logger.error(f"{rco} is a required config option, not available in environment")
|
|
||||||
sys.exit(-1)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -172,12 +157,7 @@ client = mqtt.Client()
|
|||||||
client.on_message = mqttOnMessageCallback
|
client.on_message = mqttOnMessageCallback
|
||||||
client.on_connect = mqttOnConnectCallback
|
client.on_connect = mqttOnConnectCallback
|
||||||
client.on_disconnect = mqttOnDisconnectCallback
|
client.on_disconnect = mqttOnDisconnectCallback
|
||||||
client.username_pw_set(config['MQTT_LOGIN'], config['MQTT_PASSWORD'])
|
client.connect(os.environ["MQTT_BROKER"], int(os.environ["MQTT_PORT"]))
|
||||||
client.tls_set(
|
|
||||||
cert_reqs=ssl.CERT_REQUIRED,
|
|
||||||
ciphers=None
|
|
||||||
)
|
|
||||||
client.connect(config["MQTT_BROKER"], int(config["MQTT_PORT"]))
|
|
||||||
#client.connect('172.16.2.16', 1883)
|
#client.connect('172.16.2.16', 1883)
|
||||||
logger.info("mqtt loop starting")
|
logger.info("mqtt loop starting")
|
||||||
client.loop_forever()
|
client.loop_forever()
|
||||||
|
Reference in New Issue
Block a user