1+ {{- if .Values.backend.enabled }} 
2+ apiVersion : apps/v1 
3+ kind : Deployment 
4+ metadata :
5+   name : {{ .Release.Name }}-backend 
6+   labels :
7+     app.kubernetes.io/name : {{ .Release.Name }} 
8+     app.kubernetes.io/instance : {{ .Release.Name }} 
9+     app.kubernetes.io/component : backend 
10+ spec :
11+   replicas : {{ .Values.backend.replicaCount }} 
12+   selector :
13+     matchLabels :
14+       app.kubernetes.io/name : {{ .Release.Name }} 
15+       app.kubernetes.io/instance : {{ .Release.Name }} 
16+       app.kubernetes.io/component : backend 
17+   template :
18+     metadata :
19+       labels :
20+         app.kubernetes.io/name : {{ .Release.Name }} 
21+         app.kubernetes.io/instance : {{ .Release.Name }} 
22+         app.kubernetes.io/component : backend 
23+     spec :
24+       initContainers :
25+         - name : init-db 
26+           image : " {{ .Values.backend.image.repository }}:{{ .Values.backend.image.tag }}" 
27+           command : ["sh", "-c", "mkdir -p /app/data && chmod 777 /app/data"] 
28+           securityContext :
29+             runAsUser : 0 
30+           volumeMounts :
31+             - name : app-db-data 
32+               mountPath : /app/data 
33+         - name : wait-for-prestart 
34+           image : postgres:12 
35+           command : ['sh', '-c', 'until pg_isready -h {{ .Release.Name }}-db -p 5432 -U postgres -d app; do echo "waiting for database..."; sleep 2; done'] 
36+           env :
37+             - name : PGPASSWORD 
38+               value : {{ .Values.db.env.POSTGRES_PASSWORD | quote }} 
39+       containers :
40+         - name : backend 
41+           image : " {{ .Values.backend.image.repository }}:{{ .Values.backend.image.tag }}" 
42+           imagePullPolicy : {{ .Values.backend.image.pullPolicy }} 
43+           ports :
44+             - name : http 
45+               containerPort : 8000 
46+               protocol : TCP 
47+           resources :
48+             {{- toYaml .Values.backend.resources | nindent 12 }} 
49+           envFrom :
50+             - configMapRef :
51+                 name : {{ .Release.Name }}-config 
52+             - secretRef :
53+                 name : {{ .Release.Name }}-secrets 
54+           env :
55+             - name : PYTHONPATH 
56+               value : " /app" 
57+             - name : PROJECT_NAME 
58+               value : {{ .Values.backend.env.PROJECT_NAME | quote }} 
59+             - name : ENVIRONMENT 
60+               value : {{ .Values.backend.env.ENVIRONMENT | quote }} 
61+             - name : FIRST_SUPERUSER 
62+               value : {{ .Values.backend.env.FIRST_SUPERUSER | quote }} 
63+             - name : FIRST_SUPERUSER_PASSWORD 
64+               value : {{ .Values.backend.env.FIRST_SUPERUSER_PASSWORD | quote }} 
65+             - name : FRONTEND_HOST 
66+               value : {{ .Values.backend.env.FRONTEND_HOST | quote }} 
67+             - name : SECRET_KEY 
68+               value : {{ .Values.backend.env.SECRET_KEY | quote }} 
69+             - name : BACKEND_CORS_ORIGINS 
70+               value : {{ .Values.backend.env.BACKEND_CORS_ORIGINS | quote }} 
71+             - name : SMTP_HOST 
72+               value : {{ .Values.backend.env.SMTP_HOST | quote }} 
73+             - name : SMTP_USER 
74+               value : {{ .Values.backend.env.SMTP_USER | quote }} 
75+             - name : SMTP_PASSWORD 
76+               value : {{ .Values.backend.env.SMTP_PASSWORD | quote }} 
77+             - name : EMAILS_FROM_EMAIL 
78+               value : {{ .Values.backend.env.EMAILS_FROM_EMAIL | quote }} 
79+             - name : SENTRY_DSN 
80+               value : {{ .Values.backend.env.SENTRY_DSN | quote }} 
81+             - name : POSTGRES_SERVER 
82+               value : {{ .Values.backend.env.POSTGRES_SERVER | quote }} 
83+             - name : POSTGRES_PORT 
84+               value : {{ .Values.backend.env.POSTGRES_PORT | quote }} 
85+             - name : POSTGRES_DB 
86+               value : {{ .Values.backend.env.POSTGRES_DB | quote }} 
87+             - name : POSTGRES_USER 
88+               value : {{ .Values.backend.env.POSTGRES_USER | quote }} 
89+             - name : POSTGRES_PASSWORD 
90+               value : {{ .Values.backend.env.POSTGRES_PASSWORD | quote }} 
91+           volumeMounts :
92+             - name : app-db-data 
93+               mountPath : /app/data 
94+           command : ["sh", "-c"] 
95+           args :
96+             - | 
97+               echo "Current directory: $(pwd)" && 
98+               echo "Python path: $PYTHONPATH" && 
99+               echo "Contents of /app: $(ls -la /app)" && 
100+               echo "Python version: $(python3.11 --version)" && 
101+               python3.11 -m app.backend_pre_start && 
102+               python3.11 -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --log-level debug 
103+            startupProbe :
104+             httpGet :
105+               path : /api/v1/utils/health-check/ 
106+               port : http 
107+             failureThreshold : 30 
108+             periodSeconds : 10 
109+           livenessProbe :
110+             httpGet :
111+               path : /api/v1/utils/health-check/ 
112+               port : http 
113+             initialDelaySeconds : 30 
114+             periodSeconds : 10 
115+             failureThreshold : 3 
116+           readinessProbe :
117+             httpGet :
118+               path : /api/v1/utils/health-check/ 
119+               port : http 
120+             initialDelaySeconds : 5 
121+             periodSeconds : 10 
122+             failureThreshold : 3 
123+       volumes :
124+         - name : app-db-data 
125+           emptyDir : {} 
126+ {{- end }} 
0 commit comments