apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "loop-enterprise-edition.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: server helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }} spec: {{- if not .Values.loopApp.autoscaling.enabled }} replicas: {{ .Values.loopApp.replicaCount }} {{- end }} {{- with .Values.loopApp.strategy }} strategy: {{- . | toYaml | nindent 4 }} {{- end }} revisionHistoryLimit: {{ .Values.loopApp.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: server 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: server helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }} annotations: prometheus.io/scrape: "true" prometheus.io/port: "{{ .Values.loopApp.service.metricsPort }}" prometheus.io/path: "/metrics" {{- if .Values.loopApp.extraPodAnnotations }} {{- .Values.loopApp.extraPodAnnotations | toYaml | nindent 8 }} {{- end }} spec: {{- if .Values.loopApp.nodeSelector }} nodeSelector: {{- toYaml .Values.loopApp.nodeSelector | nindent 8 }} {{- end }} {{- if .Values.loopApp.affinity }} affinity: {{- toYaml .Values.loopApp.affinity | nindent 8 }} {{- end }} {{- if .Values.loopApp.tolerations }} tolerations: {{- toYaml .Values.loopApp.tolerations | nindent 6 }} {{- end }} {{- if .Values.loopApp.securityContext }} securityContext: {{- toYaml .Values.loopApp.securityContext | nindent 8 }} {{- end }} {{- if .Values.serviceAccount.create }} serviceAccountName: {{ .Values.serviceAccount.name }} {{- end }} initContainers: {{- if .Values.loopApp.extraInitContainers }} {{- .Values.loopApp.extraInitContainers | toYaml | nindent 6 }} {{- end }} containers: - name: {{ include "loop-enterprise-edition.name" . }} image: "{{ .Values.loopApp.image.repository }}:{{ .Values.loopApp.image.tag }}" imagePullPolicy: {{ .Values.loopApp.image.pullPolicy }} ports: - containerPort: {{ .Values.loopApp.service.internalPort }} name: api - containerPort: {{ .Values.loopApp.service.metricsPort }} name: metrics - containerPort: {{ .Values.loopApp.service.clusterPort }} name: cluster - containerPort: {{ .Values.loopApp.service.gossipPort }} name: gossip 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 }} - name: MM_SERVICESETTINGS_LICENSEFILELOCATION value: {{ printf "/mattermost/%s" (.Values.global.existingLicenseSecret | default "loop.loop-license") | squote }} - name: MM_SERVICESETTINGS_SITEURL value: "{{ .Values.global.siteUrl }}" - name: MM_SERVICESETTINGS_LISTENADDRESS value: ":{{ .Values.loopApp.service.internalPort }}" - name: MM_SERVICESETTINGS_ENABLELINKPREVIEWS value: "{{ .Values.global.enableLinkPreviews }}" - name: MM_SERVICESETTINGS_ENABLECUSTOMEMOJI value: "{{ .Values.global.enableCustomEmoji }}" {{- if .Values.global.features.jobserver.enabled }} - name: MM_JOBSETTINGS_RUNJOBS value: "false" - name: MM_JOBSETTINGS_RUNSCHEDULER value: "false" {{- end }} {{- with .Values.loopApp.extraEnv }} {{ toYaml . | indent 8 }} {{- end }} livenessProbe: initialDelaySeconds: 90 timeoutSeconds: 5 periodSeconds: 15 httpGet: path: /api/v4/system/ping port: {{ .Values.loopApp.service.internalPort }} readinessProbe: initialDelaySeconds: 15 timeoutSeconds: 5 periodSeconds: 15 httpGet: path: /api/v4/system/ping port: {{ .Values.loopApp.service.internalPort }} 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 }} - mountPath: /mattermost/plugins/ name: loop-plugins - mountPath: /mattermost/client/plugins/ name: loop-plugins-client {{- if .Values.loopApp.extraVolumeMounts }} {{ toYaml .Values.loopApp.extraVolumeMounts | indent 8 }} {{- end }} resources: {{ toYaml .Values.loopApp.resources | indent 10 }} volumes: - name: loop-plugins emptyDir: {} - name: loop-plugins-client emptyDir: {} - name: loop-config emptyDir: {} - name: loop-license secret: {{- if .Values.global.existingLicenseSecret.name }} secretName: {{ .Values.global.existingLicenseSecret.name }} {{- else }} secretName: {{ include "loop-enterprise-edition.fullname" . }}-loop-license {{- end }} {{- if .Values.loopApp.extraVolumes }} {{ toYaml .Values.loopApp.extraVolumes | indent 6 }} {{- end }}