frontend and backend ready, ingress is missing

This commit is contained in:
2024-11-26 15:16:05 +01:00
parent 4e97540f88
commit f039fd95c9
4 changed files with 116 additions and 21 deletions

View File

@ -1 +1,43 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
labels:
app: backend
annotations:
secret.reloader.stakater.com/reload: database-cred
spec:
replicas: 1
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
containers:
- name: backend
image: zabbix/zabbix-server-pgsql:ol-7.0.6
imagePullPolicy: Always
ports:
- containerPort: 10051
protocol: TCP
envFrom:
- secretRef:
name: database-cred
---
apiVersion: v1
kind: Service
metadata:
name: backend
spec:
type: ClusterIP
selector:
app: backend
ports:
- name: zabbix
protocol: TCP
port: 10051
targetPort: 10051

View File

@ -4,3 +4,49 @@ metadata:
name: frontend-config
data:
ZBX_SERVER_HOST: backend.zabbix.svc.cluster.local
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend
labels:
app: frontend
annotations:
secret.reloader.stakater.com/reload: database-cred
spec:
replicas: 1
selector:
matchLabels:
app: frontend
template:
metadata:
labels:
app: frontend
spec:
containers:
- name: frontend
image: zabbix/zabbix-web-nginx-pgsql:ol-7.0.6
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
envFrom:
- secretRef:
name: database-cred
- configMapRef:
name: frontend-config
---
apiVersion: v1
kind: Service
metadata:
name: frontend
spec:
type: ClusterIP
selector:
app: frontend
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 8080

17
deployment/install.sh Executable file
View File

@ -0,0 +1,17 @@
#!/bin/bash
ARG1=$1
NAMESPACE=`cat namespace`
if [ "$ARG1" = "initial" ]; then
kubectl create namespace $NAMESPACE --dry-run=client -o yaml | kubectl -f - apply
fi
./roll-db-credential.sh $ARG1
kubectl -f backend.yml -n $NAMESPACE apply
kubectl -f frontend.yml -n $NAMESPACE apply

View File

@ -1,6 +1,9 @@
#!/bin/bash
. ../../ENVDB
export PGUSER=`kubectl get secret -n database timescaledb -o jsonpath="{.data.superuser-username}" | base64 --decode`
export PGHOST=`kubectl get services traefik -n system -o jsonpath="{.status.loadBalancer.ingress[0].ip}"`
export PGPASSWORD=`kubectl get secret -n database timescaledb -o jsonpath="{.data.superuser-password}" | base64 --decode`
export PGSSLMODE=require
DATABASE=zabbix
LOGIN=zabbix
@ -11,28 +14,15 @@ ARG1=$1
if [ "$ARG1" = "initial" ]; then
psql <<EOF
do
\$\$
begin
CREATE USER $LOGIN;
COMMIT;
CREATE DATABASE $DATABASE WITH OWNER $LOGIN;
end
\$\$
;
commit;
CREATE USER $LOGIN;
COMMIT;
CREATE DATABASE $DATABASE WITH OWNER $LOGIN;
EOF
fi
psql <<EOF
do
\$\$
begin
ALTER USER $LOGIN WITH PASSWORD '$PASSWORD';
GRANT ALL PRIVILEGES ON DATABASE $DATABASE TO $LOGIN;
end
\$\$
;
ALTER USER $LOGIN WITH PASSWORD '$PASSWORD';
GRANT ALL PRIVILEGES ON DATABASE $DATABASE TO $LOGIN;
commit;
EOF
@ -41,8 +31,8 @@ kubectl create secret generic database-cred \
-o yaml \
--save-config \
--from-literal=POSTGRES_USER="$LOGIN" \
--from-literal=POSTGRES_PASSWORD="$PASSWORD" | \
--from-literal=POSTGRES_DB="$DATABASE" | \
--from-literal=POSTGRES_PASSWORD="$PASSWORD" \
--from-literal=POSTGRES_DB="$DATABASE" \
--from-literal=DB_SERVER_HOST="timescaledb.database.svc.cluster.local" | \
kubectl apply -f - -n $NAMESPACE