diff --git a/apps/deployment.yaml b/apps/avorion/deployment.yaml similarity index 100% rename from apps/deployment.yaml rename to apps/avorion/deployment.yaml diff --git a/apps/pvc.yaml b/apps/avorion/pvc.yaml similarity index 100% rename from apps/pvc.yaml rename to apps/avorion/pvc.yaml diff --git a/apps/service.yaml b/apps/avorion/service.yaml similarity index 100% rename from apps/service.yaml rename to apps/avorion/service.yaml diff --git a/apps/dnd-dev/deployment.yaml b/apps/dnd-dev/deployment.yaml new file mode 100644 index 0000000..48a86db --- /dev/null +++ b/apps/dnd-dev/deployment.yaml @@ -0,0 +1,114 @@ +apiVersion: v1 +kind: Secret +metadata: + name: dnd-secrets + namespace: dnd-dev +type: Opaque +stringData: + # Zeigt auf denselben Postgres im dnd-Namespace (cross-namespace via FQDN) + DATABASE_URL: "postgresql://admin:dndgeheim123@dnd-postgres-service.dnd.svc.cluster.local:5432/dnd_ledger" + SECRET_KEY: "dev-secret-change-me" + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dnd-backend + namespace: dnd-dev +spec: + replicas: 1 + selector: + matchLabels: + app: dnd-backend + template: + metadata: + labels: + app: dnd-backend + spec: + imagePullSecrets: + - name: github-auth + containers: + - name: backend + image: ghcr.io/unreg-hdw/dnd-ledger-backend:dev + ports: + - containerPort: 8000 + env: + - name: DATABASE_URL + valueFrom: + secretKeyRef: + name: dnd-secrets + key: DATABASE_URL + - name: SECRET_KEY + valueFrom: + secretKeyRef: + name: dnd-secrets + key: SECRET_KEY + - name: CORS_ORIGINS + value: "https://dev.dnd.unreg-hdw.de" + readinessProbe: + httpGet: + path: /health + port: 8000 + initialDelaySeconds: 10 + periodSeconds: 10 + +--- +apiVersion: v1 +kind: Service +metadata: + name: dnd-backend-service + namespace: dnd-dev +spec: + selector: + app: dnd-backend + ports: + - port: 8000 + targetPort: 8000 + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dnd-frontend + namespace: dnd-dev +spec: + replicas: 1 + selector: + matchLabels: + app: dnd-frontend + template: + metadata: + labels: + app: dnd-frontend + spec: + imagePullSecrets: + - name: github-auth + containers: + - name: frontend + image: ghcr.io/unreg-hdw/dnd-ledger-frontend:dev + ports: + - containerPort: 3000 + env: + - name: BACKEND_URL + value: "http://dnd-backend-service:8000" + - name: NODE_ENV + value: "production" + readinessProbe: + httpGet: + path: / + port: 3000 + initialDelaySeconds: 15 + periodSeconds: 10 + +--- +apiVersion: v1 +kind: Service +metadata: + name: dnd-frontend-service + namespace: dnd-dev +spec: + selector: + app: dnd-frontend + ports: + - port: 3000 + targetPort: 3000 diff --git a/apps/dnd-dev/ingress.yaml b/apps/dnd-dev/ingress.yaml new file mode 100644 index 0000000..750f9a7 --- /dev/null +++ b/apps/dnd-dev/ingress.yaml @@ -0,0 +1,38 @@ +apiVersion: v1 +kind: Service +metadata: + name: dnd-ledger-service + namespace: dnd-dev +spec: + selector: + app: dnd-frontend + ports: + - port: 80 + targetPort: 3000 + +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: dnd-ledger-ingress + namespace: dnd-dev + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + traefik.ingress.kubernetes.io/router.entrypoints: web, websecure +spec: + ingressClassName: traefik + rules: + - host: dev.dnd.unreg-hdw.de + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: dnd-ledger-service + port: + number: 80 + tls: + - hosts: + - dev.dnd.unreg-hdw.de + secretName: dnd-ledger-dev-tls-cert diff --git a/apps/dnd-dev/namespace.yaml b/apps/dnd-dev/namespace.yaml new file mode 100644 index 0000000..9df4d13 --- /dev/null +++ b/apps/dnd-dev/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: dnd-dev diff --git a/apps/dnd/deployment.yaml b/apps/dnd/deployment.yaml index 4a41bdb..5c7cd00 100644 --- a/apps/dnd/deployment.yaml +++ b/apps/dnd/deployment.yaml @@ -5,42 +5,119 @@ metadata: namespace: dnd type: Opaque stringData: - # Host zeigt jetzt auf dnd-postgres-service DATABASE_URL: "postgresql://admin:dndgeheim123@dnd-postgres-service:5432/dnd_ledger" + SECRET_KEY: "83663c9375379ab11dd937d99b4f7b0d0c984c2dacf6c561165198d6a2b3ed62" + --- +# ── BACKEND ──────────────────────────────────────────────────────────────────── apiVersion: apps/v1 kind: Deployment metadata: - name: dnd-ledger-app + name: dnd-backend namespace: dnd spec: replicas: 1 selector: matchLabels: - app: dnd-ledger + app: dnd-backend template: metadata: labels: - app: dnd-ledger + app: dnd-backend spec: imagePullSecrets: - name: github-auth containers: - - name: streamlit - image: ghcr.io/unreg-hdw/dnd-ledger:latest # Dein neues Image + - name: backend + image: ghcr.io/unreg-hdw/dnd-ledger-backend:latest ports: - - containerPort: 8501 - args: - - "streamlit" - - "run" - - "app.py" - - "--server.port=8501" - - "--server.address=0.0.0.0" - - "--server.enableCORS=false" - - "--server.enableXsrfProtection=false" + - containerPort: 8000 env: - name: DATABASE_URL valueFrom: secretKeyRef: name: dnd-secrets - key: DATABASE_URL \ No newline at end of file + key: DATABASE_URL + - name: SECRET_KEY + valueFrom: + secretKeyRef: + name: dnd-secrets + key: SECRET_KEY + - name: CORS_ORIGINS + value: "https://dnd.unreg-hdw.de" + readinessProbe: + httpGet: + path: /health + port: 8000 + initialDelaySeconds: 10 + periodSeconds: 10 + livenessProbe: + httpGet: + path: /health + port: 8000 + initialDelaySeconds: 30 + periodSeconds: 30 + +--- +apiVersion: v1 +kind: Service +metadata: + name: dnd-backend-service + namespace: dnd +spec: + selector: + app: dnd-backend + ports: + - protocol: TCP + port: 8000 + targetPort: 8000 + +--- +# ── FRONTEND ─────────────────────────────────────────────────────────────────── +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dnd-frontend + namespace: dnd +spec: + replicas: 1 + selector: + matchLabels: + app: dnd-frontend + template: + metadata: + labels: + app: dnd-frontend + spec: + imagePullSecrets: + - name: github-auth + containers: + - name: frontend + image: ghcr.io/unreg-hdw/dnd-ledger-frontend:latest + ports: + - containerPort: 3000 + env: + - name: BACKEND_URL + value: "http://dnd-backend-service:8000" + - name: NODE_ENV + value: "production" + readinessProbe: + httpGet: + path: / + port: 3000 + initialDelaySeconds: 15 + periodSeconds: 10 + +--- +apiVersion: v1 +kind: Service +metadata: + name: dnd-frontend-service + namespace: dnd +spec: + selector: + app: dnd-frontend + ports: + - protocol: TCP + port: 3000 + targetPort: 3000 diff --git a/apps/dnd/ingress.yaml b/apps/dnd/ingress.yaml index f11c4f3..d5ed529 100644 --- a/apps/dnd/ingress.yaml +++ b/apps/dnd/ingress.yaml @@ -5,11 +5,12 @@ metadata: namespace: dnd spec: selector: - app: dnd-ledger + app: dnd-frontend ports: - protocol: TCP port: 80 - targetPort: 8501 + targetPort: 3000 + --- apiVersion: networking.k8s.io/v1 kind: Ingress @@ -20,9 +21,9 @@ metadata: cert-manager.io/cluster-issuer: "letsencrypt-prod" traefik.ingress.kubernetes.io/router.entrypoints: web, websecure spec: - ingressClassName: traefik + ingressClassName: traefik rules: - - host: dnd.unreg-hdw.de # Neue Subdomain + - host: dnd.unreg-hdw.de http: paths: - path: / @@ -35,4 +36,4 @@ spec: tls: - hosts: - dnd.unreg-hdw.de - secretName: dnd-ledger-tls-cert \ No newline at end of file + secretName: dnd-ledger-tls-cert diff --git a/apps/dnd/namespace.yaml b/apps/dnd/namespace.yaml new file mode 100644 index 0000000..40b745e --- /dev/null +++ b/apps/dnd/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: dnd diff --git a/apps/dnd/postgresql.yaml b/apps/dnd/postgresql.yaml index 67357cb..eeaa5e7 100644 --- a/apps/dnd/postgresql.yaml +++ b/apps/dnd/postgresql.yaml @@ -1,9 +1,4 @@ apiVersion: v1 -kind: Namespace -metadata: - name: dnd ---- -apiVersion: v1 kind: PersistentVolumeClaim metadata: name: dnd-postgres-pvc diff --git a/apps/rimworld-together.yaml b/apps/rimworld/rimworld-together.yaml similarity index 100% rename from apps/rimworld-together.yaml rename to apps/rimworld/rimworld-together.yaml