apiVersion: apps/v1 kind: Deployment metadata: name: backend namespace: web-portal spec: replicas: 1 selector: matchLabels: app: backend template: metadata: labels: app: backend spec: serviceAccountName: portal-backend-sa imagePullSecrets: - name: gitea-registry-secret containers: - name: backend image: gitea-http.gitea.svc.cluster.local:3000/qorgh529/portal-backend:latest imagePullPolicy: Always ports: - containerPort: 8000 env: - name: DB_HOST value: postgres-service - name: DB_PORT value: "5432" - name: DB_NAME value: portaldb - name: DB_USER value: portaluser - name: DB_PASSWORD valueFrom: secretKeyRef: name: portal-secrets key: db-password - name: JWT_SECRET valueFrom: secretKeyRef: name: portal-secrets key: jwt-secret - name: DISCORD_WEBHOOK_URL valueFrom: secretKeyRef: name: notify-secrets key: discord-webhook-url - name: GMAIL_USER valueFrom: secretKeyRef: name: notify-secrets key: gmail-user - name: GMAIL_APP_PASSWORD valueFrom: secretKeyRef: name: notify-secrets key: gmail-app-password - name: ALERT_EMAIL_TO valueFrom: secretKeyRef: name: notify-secrets key: alert-email-to - name: NAMESPACE value: web-portal - name: ALERT_CERT_DAYS value: "30" readinessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 20 periodSeconds: 5 failureThreshold: 6 livenessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 60 periodSeconds: 15 failureThreshold: 5 --- apiVersion: v1 kind: Service metadata: name: backend-service namespace: web-portal spec: selector: app: backend ports: - port: 8000 targetPort: 8000