deployment

This commit is contained in:
Wolfgang Hottgenroth 2023-11-09 17:28:09 +01:00
parent 8099472b61
commit 5015d3b6db
Signed by: wn
GPG Key ID: 836E9E1192A6B132
5 changed files with 95 additions and 0 deletions

1
.gitignore vendored
View File

@ -4,4 +4,5 @@ ENV
src/.venv/*
.dccache
src/.dccache
deployment/ENV

18
deployment/install.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/bash
NAMESPACE=$(cat namespace)
~/Workspace/MyKubernetesEnv/tools/create-namespace.sh $NAMESPACE
./roll-db-credential.sh
kubectl -f install.yml -n $NAMESPACE apply
. ./ENV
kubectl create secret generic levelmetering-mqtt-cred \
--dry-run=client \
-o yaml \
--save-config \
--from-literal=MQTT_PASSWORD="$MQTT_PASSWORD" | \
kubectl apply -f - -n $NAMESPACE

41
deployment/install.yml Normal file
View File

@ -0,0 +1,41 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: levelmetering
data:
MQTT_LOGIN: "de-hottis-level-monitoring@ttn"
MQTT_BROKER: "eu1.cloud.thethings.network"
MQTT_PORT: "8883"
MQTT_CA: ""
APPLICATION_TENANT: "de-hottis-level-monitoring@ttn"
PGDATABASE: "level_monitoring_berresheim"
PGHOST: "timescaledb.database.svc.cluster.local"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: levelmetering
labels:
app: levelmetering
spec:
replicas: 1
selector:
matchLabels:
app: levelmetering
template:
metadata:
labels:
app: levelmetering
spec:
containers:
- name: levelmetering
image: wollud1969/levelmetering-preprocessor:1.0.0
envFrom:
- configMapRef:
name: levelmetering
- secretRef:
name: levelmetering-db-cred
- secretRef:
name: levelmetering-mqtt-cred

1
deployment/namespace Normal file
View File

@ -0,0 +1 @@
berresheim

View File

@ -0,0 +1,34 @@
#!/bin/bash
. ~/Workspace/MyKubernetesEnv/ENVDB
DATABASE=level_monitoring_berresheim
LOGIN=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;
GRANT ALL PRIVILEGES ON DATABASE $DATABASE TO $LOGIN;
end
\$\$
;
commit;
EOF
kubectl create secret generic levelmetering-db-cred \
--dry-run=client \
-o yaml \
--save-config \
--from-literal=PGUSER="$LOGIN" \
--from-literal=PGPASSWORD="$PASSWORD" | \
kubectl apply -f - -n $NAMESPACE