{{- if .Values.global.features.jobserver.enabled -}} apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "loop-enterprise-edition.jobserver.fullname" . }} labels: app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: {{ .Values.global.features.jobserver.name }} helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }} spec: replicas: {{ .Values.global.features.jobserver.replicaCount }} {{- with .Values.global.features.jobserver.strategy }} strategy: {{- . | toYaml | nindent 4 }} {{- end }} revisionHistoryLimit: {{ .Values.global.features.jobserver.revisionHistoryLimit }} selector: matchLabels: app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: {{ .Values.global.features.jobserver.name }} template: metadata: labels: app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: {{ .Values.global.features.jobserver.name }} helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }} annotations: {{- if .Values.loopApp.extraPodAnnotations }} {{- .Values.loopApp.extraPodAnnotations | toYaml | nindent 8 }} {{- end }} spec: {{- if .Values.global.features.jobserver.nodeSelector }} nodeSelector: {{- toYaml .Values.global.features.jobserver.nodeSelector | nindent 8 }} {{- end }} {{- if .Values.global.features.jobserver.affinity }} affinity: {{- toYaml .Values.global.features.jobserver.affinity | nindent 8 }} {{- end }} {{- if .Values.global.features.jobserver.tolerations }} tolerations: {{- toYaml .Values.global.features.jobserver.tolerations | nindent 6 }} {{- end }} {{- if .Values.loopApp.securityContext }} securityContext: {{- toYaml .Values.loopApp.securityContext | nindent 8 }} {{- end }} initContainers: - name: "init-loop-app" image: "{{ .Values.initContainerImage.repository }}:{{ .Values.initContainerImage.tag }}" imagePullPolicy: {{ .Values.initContainerImage.imagePullPolicy }} command: [ "sh", "-c", "until curl --max-time 5 http://{{ include "loop-enterprise-edition.fullname" . }}.{{ .Release.Namespace }}:{{ .Values.loopApp.service.internalPort }}/api/v4/system/ping ; do echo waiting for LOOP App come up; sleep 5; done; echo init-loop-app finished" ] containers: - name: {{ include "loop-enterprise-edition.name" . }}-jobserver image: "{{ .Values.loopApp.image.repository }}:{{ .Values.loopApp.image.tag }}" imagePullPolicy: {{ .Values.loopApp.image.pullPolicy }} command: ["mattermost", "jobserver"] env: - name: MM_CONFIG valueFrom: secretKeyRef: {{- if .Values.global.features.database.existingDatabaseSecret }} name: {{ .Values.global.features.database.existingDatabaseSecret.name }} key: {{ .Values.global.features.database.existingDatabaseSecret.key }} {{- else }} name: {{ include "loop-enterprise-edition.fullname" . }}-loop-dbsecret key: loop.dbsecret {{- end }} {{- with .Values.global.features.jobserver.extraEnv }} {{- toYaml . | nindent 8 }} {{- end }} volumeMounts: {{- if .Values.global.existingLicenseSecret.name }} - mountPath: /mattermost/{{.Values.global.existingLicenseSecret.key }} name: loop-license subPath: {{.Values.global.existingLicenseSecret.key }} {{- else }} - mountPath: /mattermost/loop.loop-license name: loop-license subPath: loop.loop-license {{- end }} volumes: - name: loop-license secret: {{- if .Values.global.existingLicenseSecret.name }} secretName: {{ .Values.global.existingLicenseSecret.name }} {{- else }} secretName: {{ include "loop-enterprise-edition.fullname" . }}-loop-license {{- end }} {{- end -}}