apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "ai-teacher.fullname" . }}-backend labels: app: {{ include "ai-teacher.fullname" . }}-backend spec: replicas: {{ .Values.backend.replicaCount }} selector: matchLabels: app: {{ include "ai-teacher.fullname" . }}-backend template: metadata: labels: app: {{ include "ai-teacher.fullname" . }}-backend spec: {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} containers: - name: backend image: "{{ .Values.backend.image.repository }}:{{ .Values.backend.image.tag }}" imagePullPolicy: {{ .Values.backend.image.pullPolicy }} ports: - containerPort: 8080 env: - name: DB_URL value: {{ .Values.backend.env.DB_URL | quote }} - name: DB_USERNAME value: {{ .Values.backend.env.DB_USERNAME | quote }} - name: UPLOAD_ENABLED value: {{ .Values.backend.env.UPLOAD_ENABLED | quote }} - name: DELETE_ENABLED value: {{ .Values.backend.env.DELETE_ENABLED | quote }} - name: MARKER_BASE_URL value: {{ .Values.backend.env.MARKER_BASE_URL | quote }} - name: VISION_MIN_INTERVAL_MS value: {{ .Values.backend.env.VISION_MIN_INTERVAL_MS | quote }} - name: S3_ENDPOINT value: {{ .Values.backend.env.S3_ENDPOINT | quote }} - name: S3_BUCKET value: {{ .Values.backend.env.S3_BUCKET | quote }} - name: S3_REGION value: {{ .Values.backend.env.S3_REGION | quote }} # Sensitive — from Secret - name: DB_PASSWORD valueFrom: secretKeyRef: name: {{ include "ai-teacher.secretName" . }} key: DB_PASSWORD - name: OPENAI_API_KEY valueFrom: secretKeyRef: name: {{ include "ai-teacher.secretName" . }} key: OPENAI_API_KEY - name: APP_AUTH_USERNAME valueFrom: secretKeyRef: name: {{ include "ai-teacher.secretName" . }} key: APP_AUTH_USERNAME - name: APP_PASSWORD valueFrom: secretKeyRef: name: {{ include "ai-teacher.secretName" . }} key: APP_PASSWORD - name: S3_ACCESS_KEY_ID valueFrom: secretKeyRef: name: {{ include "ai-teacher.secretName" . }} key: S3_ACCESS_KEY_ID - name: S3_SECRET_ACCESS_KEY valueFrom: secretKeyRef: name: {{ include "ai-teacher.secretName" . }} key: S3_SECRET_ACCESS_KEY resources: {{- toYaml .Values.backend.resources | nindent 12 }} # readinessProbe: # httpGet: # path: /actuator/health # port: 8080 # initialDelaySeconds: 20 # periodSeconds: 10 # livenessProbe: # httpGet: # path: /actuator/health # port: 8080 # initialDelaySeconds: 40 # periodSeconds: 30