01dd02dad2
Adds configuration for additional volumes / volumeMounts to the Dendrite pod to inject configuration / secrets outside of the chart's templates ### Pull Request Checklist * [x] I have added Go unit tests or [Complement integration tests](https://github.com/matrix-org/complement) for this PR _or_ I have justified why this PR doesn't need tests - Helm chart changes * [x] Pull request includes a [sign off below using a legally identifiable name](https://matrix-org.github.io/dendrite/development/contributing#sign-off) _or_ I have already signed off privately Signed-off-by: Rhea Danzey <rdanzey@element.io> --------- Signed-off-by: Rhea Danzey <rdanzey@element.io> Co-authored-by: Till <2353100+S7evinK@users.noreply.github.com> [skip ci]
112 lines
4.3 KiB
YAML
112 lines
4.3 KiB
YAML
{{ template "validate.config" . }}
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
namespace: {{ $.Release.Namespace }}
|
|
name: {{ include "dendrite.fullname" . }}
|
|
labels:
|
|
{{- include "dendrite.labels" . | nindent 4 }}
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
{{- include "dendrite.selectorLabels" . | nindent 6 }}
|
|
replicas: 1
|
|
strategy:
|
|
type: {{ $.Values.strategy.type }}
|
|
{{- if eq $.Values.strategy.type "RollingUpdate" }}
|
|
rollingUpdate:
|
|
maxSurge: {{ $.Values.strategy.rollingUpdate.maxSurge }}
|
|
maxUnavailable: {{ $.Values.strategy.rollingUpdate.maxUnavailable }}
|
|
{{- end }}
|
|
template:
|
|
metadata:
|
|
labels:
|
|
{{- include "dendrite.selectorLabels" . | nindent 8 }}
|
|
annotations:
|
|
confighash: secret-{{ .Values.dendrite_config | toYaml | sha256sum | trunc 32 }}
|
|
spec:
|
|
volumes:
|
|
- name: {{ include "dendrite.fullname" . }}-conf-vol
|
|
secret:
|
|
secretName: {{ include "dendrite.fullname" . }}-conf
|
|
- name: {{ include "dendrite.fullname" . }}-signing-key
|
|
secret:
|
|
secretName: {{ default (print ( include "dendrite.fullname" . ) "-signing-key") $.Values.signing_key.existingSecret | quote }}
|
|
{{- if (gt (len ($.Files.Glob "appservices/*")) 0) }}
|
|
- name: {{ include "dendrite.fullname" . }}-appservices
|
|
secret:
|
|
secretName: {{ include "dendrite.fullname" . }}-appservices-conf
|
|
{{- end }}
|
|
- name: {{ include "dendrite.fullname" . }}-jetstream
|
|
persistentVolumeClaim:
|
|
claimName: {{ default (print ( include "dendrite.fullname" . ) "-jetstream-pvc") $.Values.persistence.jetstream.existingClaim | quote }}
|
|
- name: {{ include "dendrite.fullname" . }}-media
|
|
persistentVolumeClaim:
|
|
claimName: {{ default (print ( include "dendrite.fullname" . ) "-media-pvc") $.Values.persistence.media.existingClaim | quote }}
|
|
- name: {{ include "dendrite.fullname" . }}-search
|
|
persistentVolumeClaim:
|
|
claimName: {{ default (print ( include "dendrite.fullname" . ) "-search-pvc") $.Values.persistence.search.existingClaim | quote }}
|
|
{{- with .Values.extraVolumes }}
|
|
{{ . | toYaml | nindent 6 }}
|
|
{{- end }}
|
|
containers:
|
|
- name: {{ .Chart.Name }}
|
|
{{- include "image.name" . | nindent 8 }}
|
|
args:
|
|
- '--config'
|
|
- '/etc/dendrite/dendrite.yaml'
|
|
ports:
|
|
- name: http
|
|
containerPort: 8008
|
|
protocol: TCP
|
|
{{- if $.Values.dendrite_config.global.profiling.enabled }}
|
|
env:
|
|
- name: PPROFLISTEN
|
|
value: "localhost:{{- $.Values.dendrite_config.global.profiling.port -}}"
|
|
{{- end }}
|
|
resources:
|
|
{{- toYaml $.Values.resources | nindent 10 }}
|
|
volumeMounts:
|
|
- mountPath: /etc/dendrite/
|
|
name: {{ include "dendrite.fullname" . }}-conf-vol
|
|
- mountPath: /etc/dendrite/secrets/
|
|
name: {{ include "dendrite.fullname" . }}-signing-key
|
|
{{- if (gt (len ($.Files.Glob "appservices/*")) 0) }}
|
|
- mountPath: /etc/dendrite/appservices
|
|
name: {{ include "dendrite.fullname" . }}-appservices
|
|
readOnly: true
|
|
{{ end }}
|
|
- mountPath: {{ .Values.dendrite_config.media_api.base_path }}
|
|
name: {{ include "dendrite.fullname" . }}-media
|
|
- mountPath: {{ .Values.dendrite_config.global.jetstream.storage_path }}
|
|
name: {{ include "dendrite.fullname" . }}-jetstream
|
|
- mountPath: {{ .Values.dendrite_config.sync_api.search.index_path }}
|
|
name: {{ include "dendrite.fullname" . }}-search
|
|
{{- with .Values.extraVolumeMounts }}
|
|
{{ . | toYaml | nindent 8 }}
|
|
{{- end }}
|
|
livenessProbe:
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
failureThreshold: 10
|
|
httpGet:
|
|
path: /_dendrite/monitor/health
|
|
port: http
|
|
readinessProbe:
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
failureThreshold: 10
|
|
httpGet:
|
|
path: /_dendrite/monitor/health
|
|
port: http
|
|
startupProbe:
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
failureThreshold: 10
|
|
httpGet:
|
|
path: /_dendrite/monitor/up
|
|
port: http |