helm-chart-genes/charts/limesurvey-martial-ingress/templates/deployment.yaml
2024-07-09 15:03:40 +02:00

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 -}}