apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Release.Name }}-backend-server namespace: {{ .Release.Namespace }} labels: app: cvat-app tier: backend component: server {{- include "cvat.labels" . | nindent 4 }} {{- with .Values.cvat.backend.server.labels }} {{- toYaml . | nindent 4 }} {{- end }} {{- with .Values.cvat.backend.server.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: replicas: {{ .Values.cvat.backend.server.replicas }} strategy: type: Recreate selector: matchLabels: {{- include "cvat.labels" . | nindent 6 }} {{- with .Values.cvat.backend.server.labels }} {{- toYaml . | nindent 6 }} {{- end }} app: cvat-app tier: backend component: server template: metadata: labels: app: cvat-app tier: backend component: server {{- include "cvat.labels" . | nindent 8 }} {{- with .Values.cvat.backend.server.labels }} {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.cvat.backend.server.annotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} spec: containers: - name: cvat-app-backend-server-container image: {{ .Values.cvat.backend.image }}:{{ .Values.cvat.backend.tag }} {{- with .Values.cvat.backend.server.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} args: ["-c", "supervisord/server.conf"] env: - name: ALLOWED_HOSTS value: {{ .Values.cvat.backend.server.envs.ALLOWED_HOSTS | squote}} - name: DJANGO_MODWSGI_EXTRA_ARGS value: {{ .Values.cvat.backend.server.envs.DJANGO_MODWSGI_EXTRA_ARGS}} {{- if .Values.redis.enabled }} - name: CVAT_REDIS_HOST value: "{{ .Release.Name }}-redis-master" {{- else }} - name: CVAT_REDIS_HOST value: "{{ .Values.redis.external.host }}" {{- end }} {{- if .Values.postgresql.enabled }} - name: CVAT_POSTGRES_HOST valueFrom: secretKeyRef: name: "{{ .Release.Name }}-{{ .Values.postgresql.secret.name }}" key: postgresql-hostname - name: CVAT_POSTGRES_USER valueFrom: secretKeyRef: name: "{{ .Release.Name }}-{{ .Values.postgresql.secret.name }}" key: postgresql-username - name: CVAT_POSTGRES_DBNAME valueFrom: secretKeyRef: name: "{{ .Release.Name }}-{{ .Values.postgresql.secret.name }}" key: postgresql-database - name: CVAT_POSTGRES_PASSWORD valueFrom: secretKeyRef: name: "{{ .Release.Name }}-{{ .Values.postgresql.secret.name }}" key: postgresql-password {{- else }} - name: CVAT_POSTGRES_HOST value: "{{ .Values.postgresql.external.host }}" - name: CVAT_POSTGRES_USER value: "{{ .Values.postgresql.external.user }}" - name: CVAT_POSTGRES_DBNAME value: "{{ .Values.postgresql.external.dbname }}" - name: CVAT_POSTGRES_PASSWORD value: "{{ .Values.postgresql.external.password }}" - name: CVAT_POSTGRES_PORT value: "{{ .Values.postgresql.external.port }}" {{- end }} {{- if .Values.nuclio.enabled }} - name: CVAT_SERVERLESS value: "1" - name: CVAT_NUCLIO_HOST value: "{{ .Release.Name }}-nuclio-dashboard" - name: CVAT_NUCLIO_FUNCTION_NAMESPACE value: "{{ .Release.Namespace }}" {{- end }} {{- if .Values.analytics.enabled}} - name: CVAT_ANALYTICS value: "1" - name: DJANGO_LOG_SERVER_HOST {{- if .Values.analytics.external.useExternal }} value: "{{ .Values.analytics.logServerHost }}" {{- else}} value: "{{ .Release.Name }}-logstash" {{- end}} - name: DJANGO_LOG_SERVER_PORT {{- if .Values.analytics.external.useExternal }} value: "{{ .Values.analytics.logServerPort }}" {{- else}} value: "8080" {{- end}} {{- end}} {{- with .Values.cvat.backend.server.additionalEnv }} {{- toYaml . | nindent 10 }} {{- end }} ports: - containerPort: 8080 volumeMounts: - mountPath: /home/django/data name: cvat-backend-data subPath: data - mountPath: /home/django/keys name: cvat-backend-data subPath: keys - mountPath: /home/django/logs name: cvat-backend-data subPath: logs - mountPath: /home/django/models name: cvat-backend-data subPath: models {{- with .Values.cvat.backend.server.additionalVolumeMounts }} {{- toYaml . | nindent 10 }} {{- end }} initContainers: {{- if .Values.cvat.backend.permissionFix.enabled }} - name: user-data-permission-fix image: busybox command: ["/bin/chmod", "-R", "777", "/home/django"] {{- with .Values.cvat.backend.server.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} volumeMounts: {{- if .Values.cvat.backend.defaultStorage.enabled }} - mountPath: /home/django/data name: cvat-backend-data subPath: data - mountPath: /home/django/keys name: cvat-backend-data subPath: keys - mountPath: /home/django/logs name: cvat-backend-data subPath: logs - mountPath: /home/django/models name: cvat-backend-data subPath: models {{- end }} {{- with .Values.cvat.backend.server.additionalVolumeMounts }} {{- toYaml . | nindent 10 }} {{- end }} {{- end }} {{- with .Values.cvat.backend.server.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.cvat.backend.server.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }} volumes: {{- if .Values.cvat.backend.defaultStorage.enabled }} - name: cvat-backend-data persistentVolumeClaim: claimName: "{{ .Release.Name }}-backend-data" {{- end }} {{- with .Values.cvat.backend.server.additionalVolumes }} {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }}