ebs/helm/chart/templates/deployment.yaml
2023-12-21 08:49:38 +01:00

370 lines
14 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "plateformcoop-ebs" . }}
labels:
{{- include "plateformcoop-ebs.labels" . | nindent 4 }}
spec:
{{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "plateformcoop-ebs.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "plateformcoop-ebs.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "plateformcoop-ebs.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers:
- name: {{ .Chart.Name }}-chown
securityContext:
runAsUser: 0
image: "{{ .Values.php.image.repository }}:{{ .Values.php.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.php.image.pullPolicy }}
command: ['/bin/sh', '-c']
args: ['set -ex; mkdir -p public/storage/uploads/category ; mkdir -p public/storage/uploads/menu ; mkdir -p public/storage/uploads/product ; mkdir -p public/storage/uploads/user ; chown -R www-data: public/storage/']
volumeMounts:
- mountPath: /srv/app/public/storage
name: storage
containers:
- name: {{ .Chart.Name }}-caddy
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.caddy.image.repository }}:{{ .Values.caddy.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.caddy.image.pullPolicy }}
env:
- name: SERVER_NAME
value: :80
- name: PWA_UPSTREAM
value: {{ include "plateformcoop-ebs" . }}-pwa:3000
- name: MERCURE_EXTRA_DIRECTIVES
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: mercure-extra-directives
- name: MERCURE_PUBLISHER_JWT_KEY
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: mercure-jwt-secret
- name: MERCURE_SUBSCRIBER_JWT_KEY
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: mercure-jwt-secret
ports:
- name: http
containerPort: 80
protocol: TCP
- name: admin
containerPort: 2019
protocol: TCP
volumeMounts:
- mountPath: /srv/app/public/storage
name: storage
- mountPath: /var/run/php
name: php-socket
lifecycle:
preStop:
exec:
command: ["curl", "-XPOST", "http://localhost:2019/stop"]
readinessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 3
livenessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 3
resources:
{{- toYaml .Values.resources.caddy | nindent 12 }}
- name: {{ .Chart.Name }}-php
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.php.image.repository }}:{{ .Values.php.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.php.image.pullPolicy }}
env:
- name: API_ENTRYPOINT_HOST
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-host
- name: JWT_PASSPHRASE
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-jwt-passphrase
- name: JWT_PUBLIC_KEY
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-jwt-public-key
- name: JWT_SECRET_KEY
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-jwt-secret-key
- name: TRUSTED_HOSTS
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-trusted-hosts
- name: TRUSTED_PROXIES
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-trusted-proxies
- name: APP_ENV
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-app-env
- name: APP_DEBUG
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-app-debug
- name: APP_SECRET
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-app-secret
- name: CORS_ALLOW_ORIGIN
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-cors-allow-origin
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: database-url
- name: MAILER_DSN
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: mailer-dsn
- name: MERCURE_URL
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: mercure-url
- name: MERCURE_PUBLIC_URL
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: mercure-public-url
- name: MERCURE_JWT_SECRET
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: mercure-jwt-secret
{{- if .Values.meilisearch.enabled }}
- name: MEILISEARCH_API_KEY
valueFrom:
secretKeyRef:
name: {{ printf "%s-%s" (include "meilisearch.fullname" .Subcharts.meilisearch ) "master-key" }}
key: MEILI_MASTER_KEY
- name: MEILISEARCH_URL
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: meilisearch-url
{{- end }}
{{- if .Values.redis.enabled }}
- name: REDIS_URL
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: redis-url
{{- end }}
- name: SMS_DSN
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: sms-dsn
- name: PAYUM_APIKEY
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: payum-apikey
- name: PAYUM_GATEWAY
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: payum-gateway
- name: STORAGE_BUCKET
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-storage-bucket
- name: STORAGE_ENDPOINT
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-storage-endpoint
- name: STORAGE_REGION
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-storage-region
- name: STORAGE_USE_PATH_STYLE_ENDPOINT
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-storage-use-path-style-endpoint
- name: STORAGE_KEY
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-storage-key
- name: STORAGE_SECRET
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-storage-secret
volumeMounts:
- mountPath: /srv/app/public/storage
name: storage
- mountPath: /var/run/php
name: php-socket
lifecycle:
preStop:
exec:
command: ["/bin/sh", "-c", "/bin/sleep 1; kill -QUIT 1"]
startupProbe:
exec:
command:
- docker-healthcheck
failureThreshold: 40
readinessProbe:
exec:
command:
- docker-healthcheck
livenessProbe:
exec:
command:
- docker-healthcheck
resources:
{{- toYaml .Values.resources.php | nindent 12 }}
{{- if .Values.consumer.enabled }}
- name: {{ .Chart.Name }}-consumer
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.php.image.repository }}:{{ .Values.php.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.php.image.pullPolicy }}
args: ['bin/console', 'messenger:consume']
env:
- name: API_ENTRYPOINT_HOST
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-host
- name: JWT_PASSPHRASE
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-jwt-passphrase
- name: JWT_PUBLIC_KEY
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-jwt-public-key
- name: JWT_SECRET_KEY
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-jwt-secret-key
- name: TRUSTED_HOSTS
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-trusted-hosts
- name: TRUSTED_PROXIES
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-trusted-proxies
- name: APP_ENV
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-app-env
- name: APP_DEBUG
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-app-debug
- name: APP_SECRET
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-app-secret
- name: CORS_ALLOW_ORIGIN
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: php-cors-allow-origin
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: database-url
- name: MERCURE_URL
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: mercure-url
- name: MERCURE_PUBLIC_URL
valueFrom:
configMapKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: mercure-public-url
- name: MERCURE_JWT_SECRET
valueFrom:
secretKeyRef:
name: {{ include "plateformcoop-ebs" . }}
key: mercure-jwt-secret
startupProbe:
exec:
command: ['pgrep', '-f', 'php bin/console messenger:consume']
failureThreshold: 40
readinessProbe:
exec:
command: ['pgrep', '-f', 'php bin/console messenger:consume']
livenessProbe:
exec:
command: ['pgrep', '-f', 'php bin/console messenger:consume']
resources:
{{- toYaml .Values.resources.consumer | nindent 12 }}
{{- end }}
volumes:
- name: storage
# TODO: pvc option?
emptyDir: {}
- name: php-socket
emptyDir: {}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}