Files
timetracker/timetracker-chart/templates/backend-deployment.yaml
2026-02-18 19:19:42 +01:00

78 lines
2.9 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "timetracker.fullname" . }}-backend
labels:
{{- include "timetracker.backend.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.backend.replicaCount }}
selector:
matchLabels:
{{- include "timetracker.backend.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "timetracker.backend.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "timetracker.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: backend
image: "{{ .Values.backend.image.repository }}:{{ .Values.backend.image.tag }}"
imagePullPolicy: {{ .Values.backend.image.pullPolicy }}
env:
- name: NODE_ENV
value: {{ .Values.backend.env.nodeEnv | quote }}
- name: PORT
value: {{ .Values.backend.env.port | quote }}
- name: PG_USERNAME
{{- if .Values.postgresql.auth.existingSecret }}
valueFrom:
secretKeyRef:
name: {{ .Values.postgresql.auth.existingSecret }}
key: username
{{- else }}
value: {{ .Values.postgresql.auth.username | quote }}
{{- end }}
- name: PG_PASSWORD
{{- if .Values.postgresql.auth.existingSecret }}
valueFrom:
secretKeyRef:
name: {{ .Values.postgresql.auth.existingSecret }}
key: password
{{- else }}
value: {{ .Values.postgresql.auth.password | quote }}
{{- end }}
- name: DATABASE_URL
value: "postgresql://$(PG_USERNAME):$(PG_PASSWORD)@{{ .Values.postgresql.host }}:{{ .Values.postgresql.port }}/{{ .Values.postgresql.database }}"
- name: OIDC_ISSUER_URL
value: {{ .Values.backend.oidc.issuerUrl | quote }}
- name: OIDC_CLIENT_ID
value: {{ .Values.backend.oidc.clientId | quote }}
- name: SESSION_SECRET
value: {{ .Values.backend.session.secret | quote }}
- name: APP_URL
value: {{ (index .Values.ingress.hosts 0).host | printf "https://%s" | quote }}
ports:
- name: http
containerPort: 3001
protocol: TCP
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 10
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 5
periodSeconds: 5
resources:
{{- toYaml .Values.backend.resources | nindent 12 }}