apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Release.Name }}-backend namespace: {{ .Release.Namespace }} labels: {{- include "lunarfront.labels" . | nindent 4 }} spec: replicas: 1 selector: matchLabels: app: {{ .Release.Name }}-backend template: metadata: labels: app: {{ .Release.Name }}-backend spec: imagePullSecrets: {{- toYaml .Values.imagePullSecrets | nindent 8 }} containers: - name: backend image: "{{ .Values.backend.image.repository }}:{{ .Values.backend.image.tag }}" imagePullPolicy: {{ .Values.backend.image.pullPolicy }} ports: - containerPort: {{ .Values.backend.port }} env: - name: PORT value: {{ .Values.backend.port | quote }} - name: NODE_ENV value: production - name: DATABASE_URL valueFrom: secretKeyRef: name: lunarfront-secrets key: database-url - name: REDIS_URL valueFrom: secretKeyRef: name: lunarfront-secrets key: redis-url - name: JWT_SECRET valueFrom: secretKeyRef: name: lunarfront-secrets key: jwt-secret livenessProbe: httpGet: path: /v1/health port: {{ .Values.backend.port }} initialDelaySeconds: 15 periodSeconds: 30 readinessProbe: httpGet: path: /v1/health port: {{ .Values.backend.port }} initialDelaySeconds: 5 periodSeconds: 10 resources: {{- toYaml .Values.backend.resources | nindent 12 }}