From 4c62845be0c43c5a40d24f55c04edb3c8333b549 Mon Sep 17 00:00:00 2001 From: HDW Date: Fri, 15 May 2026 16:15:50 +0200 Subject: [PATCH] dnd --- apps/dnd/deployment.yaml | 44 +++++++++++++++++++++++++++ apps/dnd/ingress.yaml | 38 +++++++++++++++++++++++ apps/dnd/postgresql.yaml | 65 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 apps/dnd/deployment.yaml create mode 100644 apps/dnd/ingress.yaml create mode 100644 apps/dnd/postgresql.yaml diff --git a/apps/dnd/deployment.yaml b/apps/dnd/deployment.yaml new file mode 100644 index 0000000..1a614cf --- /dev/null +++ b/apps/dnd/deployment.yaml @@ -0,0 +1,44 @@ +apiVersion: v1 +kind: Secret +metadata: + name: dnd-secrets + namespace: dnd +type: Opaque +stringData: + # Host zeigt jetzt auf dnd-postgres-service + DATABASE_URL: "postgresql://admin:dndgeheim123@dnd-postgres-service:5432/dnd_ledger" +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dnd-ledger-app + namespace: dnd +spec: + replicas: 1 + selector: + matchLabels: + app: dnd-ledger + template: + metadata: + labels: + app: dnd-ledger + spec: + containers: + - name: streamlit + image: ghcr.io/unreg-hdw/dandd:latest # Dein neues Image + ports: + - containerPort: 8501 + args: + - "streamlit" + - "run" + - "app.py" + - "--server.port=8501" + - "--server.address=0.0.0.0" + - "--server.enableCORS=false" + - "--server.enableXsrfProtection=false" + env: + - name: DATABASE_URL + valueFrom: + secretKeyRef: + name: dnd-secrets + key: DATABASE_URL \ No newline at end of file diff --git a/apps/dnd/ingress.yaml b/apps/dnd/ingress.yaml new file mode 100644 index 0000000..f11c4f3 --- /dev/null +++ b/apps/dnd/ingress.yaml @@ -0,0 +1,38 @@ +apiVersion: v1 +kind: Service +metadata: + name: dnd-ledger-service + namespace: dnd +spec: + selector: + app: dnd-ledger + ports: + - protocol: TCP + port: 80 + targetPort: 8501 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: dnd-ledger-ingress + namespace: dnd + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + traefik.ingress.kubernetes.io/router.entrypoints: web, websecure +spec: + ingressClassName: traefik + rules: + - host: dnd.unreg-hdw.de # Neue Subdomain + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: dnd-ledger-service + port: + number: 80 + tls: + - hosts: + - dnd.unreg-hdw.de + secretName: dnd-ledger-tls-cert \ No newline at end of file diff --git a/apps/dnd/postgresql.yaml b/apps/dnd/postgresql.yaml new file mode 100644 index 0000000..67357cb --- /dev/null +++ b/apps/dnd/postgresql.yaml @@ -0,0 +1,65 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: dnd +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: dnd-postgres-pvc + namespace: dnd +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi +--- +apiVersion: v1 +kind: Service +metadata: + name: dnd-postgres-service + namespace: dnd +spec: + selector: + app: dnd-postgres + ports: + - protocol: TCP + port: 5432 + targetPort: 5432 +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: dnd-postgres + namespace: dnd +spec: + serviceName: "dnd-postgres-service" + replicas: 1 + selector: + matchLabels: + app: dnd-postgres + template: + metadata: + labels: + app: dnd-postgres + spec: + containers: + - name: postgres + image: postgres:15-alpine + env: + - name: POSTGRES_DB + value: "dnd_ledger" # Name der DB geƤndert + - name: POSTGRES_USER + value: "admin" + - name: POSTGRES_PASSWORD + value: "dndgeheim123" + ports: + - containerPort: 5432 + volumeMounts: + - name: postgres-storage + mountPath: /var/lib/postgresql/data + volumes: + - name: postgres-storage + persistentVolumeClaim: + claimName: dnd-postgres-pvc \ No newline at end of file