File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # ----------------------
2+ # Namespace for application
3+ # ----------------------
4+ apiVersion : v1
5+ kind : Namespace
6+ metadata :
7+ name : student-api
8+ ---
9+ # ----------------------
10+ # ConfigMap for Flask API
11+ # ----------------------
12+ apiVersion : v1
13+ kind : ConfigMap
14+ metadata :
15+ name : flask-config
16+ namespace : student-api
17+ data :
18+ POSTGRES_HOST : " postgres"
19+ POSTGRES_PORT : " 5432"
20+ POSTGRES_DB : " studentdb"
21+ ---
22+ # ----------------------
23+ # Deployment for Flask REST API
24+ # ----------------------
25+ apiVersion : apps/v1
26+ kind : Deployment
27+ metadata :
28+ name : flask-api
29+ namespace : student-api
30+ spec :
31+ replicas : 2
32+ selector :
33+ matchLabels :
34+ app : flask-api
35+ template :
36+ metadata :
37+ labels :
38+ app : flask-api
39+ spec :
40+ nodeSelector :
41+ type : application
42+ initContainers :
43+ - name : db-migrations
44+ image : akhilthyadi/flask-app:7.0.0
45+ workingDir : /api/app
46+ env :
47+ - name : FLASK_APP
48+ value : " wsgi.py"
49+ - name : POSTGRES_USER
50+ valueFrom :
51+ secretKeyRef :
52+ name : postgres-secret
53+ key : POSTGRES_USER
54+ - name : POSTGRES_PASSWORD
55+ valueFrom :
56+ secretKeyRef :
57+ name : postgres-secret
58+ key : POSTGRES_PASSWORD
59+ - name : POSTGRES_HOST
60+ valueFrom :
61+ configMapKeyRef :
62+ name : flask-config
63+ key : POSTGRES_HOST
64+ - name : POSTGRES_PORT
65+ valueFrom :
66+ configMapKeyRef :
67+ name : flask-config
68+ key : POSTGRES_PORT
69+ - name : POSTGRES_DB
70+ valueFrom :
71+ configMapKeyRef :
72+ name : flask-config
73+ key : POSTGRES_DB
74+ command :
75+ - sh
76+ - -c
77+ - |
78+ echo "Waiting for Postgres at $POSTGRES_HOST:$POSTGRES_PORT..."
79+ until pg_isready -h $POSTGRES_HOST -p $POSTGRES_PORT -U $POSTGRES_USER; do
80+ sleep 2
81+ done
82+ echo "Postgres is ready, running migrations..."
83+ flask db upgrade
84+ containers :
85+ - name : flask-api
86+ image : akhilthyadi/flask-app:7.0.0
87+ ports :
88+ - containerPort : 5000
89+ env :
90+ - name : POSTGRES_USER
91+ valueFrom :
92+ secretKeyRef :
93+ name : postgres-secret
94+ key : POSTGRES_USER
95+ - name : POSTGRES_PASSWORD
96+ valueFrom :
97+ secretKeyRef :
98+ name : postgres-secret
99+ key : POSTGRES_PASSWORD
100+ - name : POSTGRES_HOST
101+ valueFrom :
102+ configMapKeyRef :
103+ name : flask-config
104+ key : POSTGRES_HOST
105+ - name : POSTGRES_PORT
106+ valueFrom :
107+ configMapKeyRef :
108+ name : flask-config
109+ key : POSTGRES_PORT
110+ - name : POSTGRES_DB
111+ valueFrom :
112+ configMapKeyRef :
113+ name : flask-config
114+ key : POSTGRES_DB
115+ ---
116+ # ----------------------
117+ # Service to expose Flask API
118+ # ----------------------
119+ apiVersion : v1
120+ kind : Service
121+ metadata :
122+ name : flask-api-service
123+ namespace : student-api
124+ spec :
125+ selector :
126+ app : flask-api
127+ ports :
128+ - protocol : TCP
129+ port : 80
130+ targetPort : 5000
131+ type : NodePort
You can’t perform that action at this time.
0 commit comments