apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "docuelevate.fullname" . }}-api namespace: {{ .Release.Namespace }} labels: {{- include "docuelevate.labels" . | nindent 4 }} app.kubernetes.io/component: api spec: {{- if not .Values.api.autoscaling.enabled }} replicas: {{ .Values.api.replicaCount }} {{- end }} selector: matchLabels: {{- include "docuelevate.selectorLabels" . | nindent 6 }} app.kubernetes.io/component: api template: metadata: labels: {{- include "docuelevate.selectorLabels" . | nindent 8 }} app.kubernetes.io/component: api {{- with .Values.api.podAnnotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} spec: serviceAccountName: {{ include "docuelevate.serviceAccountName" . }} {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.api.podSecurityContext }} securityContext: {{- toYaml . | nindent 8 }} {{- end }} containers: - name: api image: {{ include "docuelevate.image" . }} imagePullPolicy: {{ .Values.image.pullPolicy }} command: - uvicorn - app.main:app - --host - "0.0.0.0" - --port - "8000" - --proxy-headers ports: - name: http containerPort: 8000 protocol: TCP envFrom: - configMapRef: name: {{ include "docuelevate.fullname" . }}-config - secretRef: name: {{ include "docuelevate.fullname" . }}-secret {{- with .Values.api.livenessProbe }} livenessProbe: {{- toYaml . | nindent 12 }} {{- end }} {{- with .Values.api.readinessProbe }} readinessProbe: {{- toYaml . | nindent 12 }} {{- end }} {{- with .Values.api.securityContext }} securityContext: {{- toYaml . | nindent 12 }} {{- end }} resources: {{- toYaml .Values.api.resources | nindent 12 }} volumeMounts: - name: workdir mountPath: /workdir volumes: - name: workdir {{- if .Values.workdir.persistence.enabled }} persistentVolumeClaim: claimName: {{ .Values.workdir.persistence.existingClaim | default (printf "%s-workdir" (include "docuelevate.fullname" .)) }} {{- else }} emptyDir: {} {{- end }} {{- with .Values.api.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.api.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.api.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }}