apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "lions-app.name" . }} namespace: {{ .Release.Namespace }} labels: {{- include "lions-app.labels" . | nindent 4 }} {{- with .Values.commonAnnotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: replicas: {{ .Values.replicaCount }} strategy: {{- toYaml .Values.strategy | nindent 4 }} selector: matchLabels: {{- include "lions-app.selectorLabels" . | nindent 6 }} template: metadata: labels: {{- include "lions-app.selectorLabels" . | nindent 8 }} {{- with .Values.podLabels }} {{- toYaml . | nindent 8 }} {{- end }} annotations: {{- if .Values.configMap.enabled }} checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} {{- end }} {{- if .Values.externalSecret.enabled }} checksum/externalsecret: {{ include (print $.Template.BasePath "/externalsecret.yaml") . | sha256sum }} {{- end }} {{- with .Values.podAnnotations }} {{- toYaml . | nindent 8 }} {{- end }} spec: serviceAccountName: {{ include "lions-app.serviceAccountName" . }} automountServiceAccountToken: false securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} {{- with .Values.image.pullSecrets }} imagePullSecrets: {{- range . }} - name: {{ . }} {{- end }} {{- end }} containers: - name: {{ include "lions-app.name" . }} image: {{ include "lions-app.image" . }} imagePullPolicy: {{ .Values.image.pullPolicy }} securityContext: {{- toYaml .Values.containerSecurityContext | nindent 12 }} ports: - name: http containerPort: {{ .Values.container.port }} protocol: TCP {{- with .Values.container.extraArgs }} args: {{- toYaml . | nindent 12 }} {{- end }} {{- if or .Values.env .Values.container.extraEnv }} env: {{- with .Values.env }} {{- toYaml . | nindent 12 }} {{- end }} {{- with .Values.container.extraEnv }} {{- toYaml . | nindent 12 }} {{- end }} {{- end }} {{- if or (and .Values.configMap.enabled .Values.configMap.envFrom (gt (len (keys .Values.configMap.data)) 0)) .Values.externalSecret.enabled .Values.extraEnvFrom }} envFrom: {{- if and .Values.configMap.enabled .Values.configMap.envFrom (gt (len (keys .Values.configMap.data)) 0) }} - configMapRef: name: {{ include "lions-app.name" . }} {{- end }} {{- if .Values.externalSecret.enabled }} - secretRef: name: {{ include "lions-app.secretName" . }} {{- end }} {{- with .Values.extraEnvFrom }} {{- toYaml . | nindent 12 }} {{- end }} {{- end }} {{- if .Values.probes.startup.enabled }} startupProbe: {{- omit .Values.probes.startup "enabled" | toYaml | nindent 12 }} {{- end }} {{- if .Values.probes.liveness.enabled }} livenessProbe: {{- omit .Values.probes.liveness "enabled" | toYaml | nindent 12 }} {{- end }} {{- if .Values.probes.readiness.enabled }} readinessProbe: {{- omit .Values.probes.readiness "enabled" | toYaml | nindent 12 }} {{- end }} resources: {{- toYaml .Values.resources | nindent 12 }} volumeMounts: {{- if .Values.volumes.tmp.enabled }} - name: tmp mountPath: /tmp {{- end }} {{- if .Values.volumes.logs.enabled }} - name: logs mountPath: {{ .Values.volumes.logs.mountPath | default "/app/logs" }} {{- end }} {{- with .Values.volumeMounts }} {{- toYaml . | nindent 12 }} {{- end }} volumes: {{- if .Values.volumes.tmp.enabled }} - name: tmp emptyDir: sizeLimit: {{ .Values.volumes.tmp.sizeLimit | default "100Mi" }} {{- end }} {{- if .Values.volumes.logs.enabled }} - name: logs emptyDir: sizeLimit: {{ .Values.volumes.logs.sizeLimit | default "500Mi" }} {{- end }} {{- with .Values.volumes.extra }} {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }}