273 lines
10 KiB
YAML
273 lines
10 KiB
YAML
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: {{ include "limesurvey.fullname" . }}
|
|
labels:
|
|
{{- include "limesurvey.labels" . | nindent 4 }}
|
|
spec:
|
|
{{- if not .Values.autoscaling.enabled }}
|
|
replicas: {{ .Values.replicaCount }}
|
|
{{- end }}
|
|
selector:
|
|
matchLabels:
|
|
{{- include "limesurvey.selectorLabels" . | nindent 6 }}
|
|
{{- if .Values.updateStrategy }}
|
|
strategy: {{- toYaml .Values.updateStrategy | nindent 4 }}
|
|
{{- end }}
|
|
template:
|
|
metadata:
|
|
{{- with .Values.podAnnotations }}
|
|
annotations:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
labels:
|
|
{{- include "limesurvey.selectorLabels" . | nindent 8 }}
|
|
spec:
|
|
{{- with .Values.imagePullSecrets }}
|
|
imagePullSecrets:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
serviceAccountName: {{ include "limesurvey.serviceAccountName" . }}
|
|
securityContext:
|
|
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
|
initContainers:
|
|
- name: wait-for-db
|
|
image: {{ include "limesurvey.imageUrl" . }}
|
|
{{- if .Values.containerSecurityContext.enabled }}
|
|
securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
|
{{- end }}
|
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
|
command: ['/bin/sh', '-c',
|
|
'until nc -z -v -w30 "$DB_HOST" "$DB_PORT"; do
|
|
echo "Info: Waiting for database connection...";
|
|
sleep 5;
|
|
done']
|
|
resources:
|
|
{{- toYaml .Values.resources | nindent 12 }}
|
|
env:
|
|
- name: DB_HOST
|
|
{{- if eq .Values.mariadb.enabled true }}
|
|
value: {{ include "limesurvey.mariadb.fullname" . }}
|
|
{{- else }}
|
|
value: {{ .Values.externalDatabase.host }}
|
|
{{- end }}
|
|
- name: DB_PORT
|
|
{{- if eq .Values.mariadb.enabled true }}
|
|
value: {{ coalesce .Values.mariadb.primary.service.ports.mysql .Values.mariadb.primary.service.port 3306 | quote }}
|
|
{{- else }}
|
|
value: {{ coalesce .Values.externalDatabase.port 3306 | quote }}
|
|
{{- end }}
|
|
containers:
|
|
- name: limesurvey-apache
|
|
image: {{ include "limesurvey.imageUrl" . }}
|
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
|
{{- if .Values.containerSecurityContext.enabled }}
|
|
securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
|
{{- end }}
|
|
ports:
|
|
- name: http
|
|
containerPort: 8080
|
|
protocol: TCP
|
|
{{- if .Values.limesurvey.livenessProbe.enabled }}
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /
|
|
port: http
|
|
{{- end }}
|
|
{{- if .Values.limesurvey.readinessProbe.enabled }}
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /
|
|
port: http
|
|
{{- end }}
|
|
resources:
|
|
{{- toYaml .Values.resources | nindent 12 }}
|
|
volumeMounts:
|
|
- name: storage
|
|
mountPath: "/var/www/html/upload/"
|
|
{{- if .Values.persistence.subPath }}
|
|
subPath: {{ .Values.persistence.subPath }}
|
|
{{- end }}
|
|
{{- range .Values.extraVolumeMounts }}
|
|
- name: {{ .name }}
|
|
mountPath: {{ .mountPath }}
|
|
subPath: {{ .subPath | default "" }}
|
|
readOnly: {{ .readOnly }}
|
|
{{- end }}
|
|
{{- range .Values.extraEmptyDirMounts }}
|
|
- name: {{ .name }}
|
|
mountPath: {{ .mountPath }}
|
|
{{- end }}
|
|
env:
|
|
- name: DB_TYPE
|
|
{{- if eq .Values.mariadb.enabled true }}
|
|
value: "mysql"
|
|
{{- else }}
|
|
value: {{ .Values.externalDatabase.type }}
|
|
{{- end }}
|
|
- name: DB_HOST
|
|
{{- if eq .Values.mariadb.enabled true }}
|
|
value: {{ include "limesurvey.mariadb.fullname" . }}
|
|
{{- else }}
|
|
value: {{ .Values.externalDatabase.host }}
|
|
{{- end }}
|
|
- name: DB_PORT
|
|
{{- if eq .Values.mariadb.enabled true }}
|
|
value: {{ coalesce .Values.mariadb.primary.service.ports.mysql .Values.mariadb.primary.service.port 3306 | quote }}
|
|
{{- else }}
|
|
value: {{ coalesce .Values.externalDatabase.port 3306 | quote }}
|
|
{{- end }}
|
|
- name: DB_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "limesurvey.databaseSecretName" . }}
|
|
{{- if .Values.mariadb.enabled }}
|
|
key: mariadb-password
|
|
{{- else }}
|
|
key: {{ .Values.externalDatabase.existingSecretConfig.passwordField }}
|
|
{{- end }}
|
|
- name: DB_USERNAME
|
|
{{- if eq .Values.mariadb.enabled true }}
|
|
value: {{ .Values.mariadb.auth.username }}
|
|
{{- else }}
|
|
{{- if .Values.externalDatabase.existingSecretConfig.usernameField }}
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "limesurvey.databaseSecretName" . }}
|
|
key: {{ .Values.externalDatabase.existingSecretConfig.usernameField }}
|
|
{{- else}}
|
|
value: {{ .Values.externalDatabase.username }}
|
|
{{- end }}
|
|
{{- end }}
|
|
- name: DB_NAME
|
|
{{- if eq .Values.mariadb.enabled true }}
|
|
value: {{ .Values.mariadb.auth.database }}
|
|
{{- else }}
|
|
{{- if .Values.externalDatabase.existingSecretConfig.databaseField }}
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "limesurvey.databaseSecretName" . }}
|
|
key: {{ .Values.externalDatabase.existingSecretConfig.databaseField}}
|
|
{{- else }}
|
|
value: {{ .Values.externalDatabase.database }}
|
|
{{- end }}
|
|
{{- end }}
|
|
- name: DB_TABLE_PREFIX
|
|
value: {{ .Values.limesurvey.tablePrefix | quote }}
|
|
- name: DB_MYSQL_ENGINE
|
|
value: {{ .Values.limesurvey.mysqlEngine }}
|
|
- name: ADMIN_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "limesurvey.secretName" . }}
|
|
key: limesurvey-admin-password
|
|
- name: ADMIN_USER
|
|
value: {{ .Values.limesurvey.admin.user }}
|
|
- name: ADMIN_NAME
|
|
value: {{ .Values.limesurvey.admin.name }}
|
|
- name: ADMIN_EMAIL
|
|
value: {{ .Values.limesurvey.admin.email }}
|
|
- name: LISTEN_PORT
|
|
value: {{ .Values.limesurvey.listenPort | quote }}
|
|
{{- if .Values.limesurvey.baseUrl }}
|
|
- name: BASE_URL
|
|
value: {{ .Values.limesurvey.baseUrl }}
|
|
{{- end }}
|
|
{{- if .Values.limesurvey.publicUrl }}
|
|
- name: PUBLIC_URL
|
|
value: {{ .Values.limesurvey.publicUrl }}
|
|
{{- end }}
|
|
- name: URL_FORMAT
|
|
value: {{ .Values.limesurvey.urlFormat }}
|
|
{{- if eq .Values.limesurvey.tableSession true }}
|
|
- name: TABLE_SESSION
|
|
value: {{ .Values.limesurvey.tableSession }}
|
|
{{- end }}
|
|
{{- if .Values.limesurvey.showScriptName }}
|
|
- name: SHOW_SCRIPT_NAME
|
|
value: {{ .Values.limesurvey.showScriptName | quote }}
|
|
{{- end }}
|
|
{{- if (or .Values.limesurvey.encrypt.keypair .Values.limesurvey.existingSecret) }}
|
|
- name: ENCRYPT_KEYPAIR
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "limesurvey.secretName" . }}
|
|
key: limesurvey-encrypt-keypair
|
|
{{- end }}
|
|
{{- if (or .Values.limesurvey.encrypt.publicKey .Values.limesurvey.existingSecret) }}
|
|
- name: ENCRYPT_PUBLIC_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "limesurvey.secretName" . }}
|
|
key: limesurvey-encrypt-publickey
|
|
{{- end }}
|
|
{{- if (or .Values.limesurvey.encrypt.secretKey .Values.limesurvey.existingSecret) }}
|
|
- name: ENCRYPT_SECRET_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "limesurvey.secretName" . }}
|
|
key: limesurvey-encrypt-secretkey
|
|
{{- end }}
|
|
{{- if (or .Values.limesurvey.encrypt.nonce .Values.limesurvey.existingSecret) }}
|
|
- name: ENCRYPT_NONCE
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "limesurvey.secretName" . }}
|
|
key: limesurvey-encrypt-nonce
|
|
{{- end }}
|
|
{{- if (or .Values.limesurvey.encrypt.secretBoxKey .Values.limesurvey.existingSecret) }}
|
|
- name: ENCRYPT_SECRET_BOX_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "limesurvey.secretName" . }}
|
|
key: limesurvey-encrypt-secretboxkey
|
|
{{- end }}
|
|
- name: DEBUG
|
|
value: "{{ .Values.limesurvey.debug }}"
|
|
- name: DEBUG_SQL
|
|
value: "{{ .Values.limesurvey.debugSql }}"
|
|
|
|
{{- with .Values.nodeSelector }}
|
|
nodeSelector:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
{{- with .Values.affinity }}
|
|
affinity:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
{{- with .Values.tolerations }}
|
|
tolerations:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
volumes:
|
|
- name: storage
|
|
{{- if .Values.persistence.enabled }}
|
|
persistentVolumeClaim:
|
|
claimName: {{ .Values.persistence.existingClaim | default (include "limesurvey.fullname" .) }}
|
|
{{- else }}
|
|
emptyDir: {}
|
|
{{- end -}}
|
|
{{- range .Values.extraVolumeMounts }}
|
|
- name: {{ .name }}
|
|
{{- if .existingClaim }}
|
|
persistentVolumeClaim:
|
|
claimName: {{ .existingClaim }}
|
|
{{- else if .hostPath }}
|
|
hostPath:
|
|
path: {{ .hostPath }}
|
|
{{- else if .configMap }}
|
|
configMap:
|
|
name: {{ .configMap }}
|
|
{{- with .items }}
|
|
items:
|
|
{{- toYaml . | nindent 14 }}
|
|
{{- end }}
|
|
{{- else }}
|
|
emptyDir: {}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- range .Values.extraEmptyDirMounts }}
|
|
- name: {{ .name }}
|
|
emptyDir: {}
|
|
{{- end -}}
|