-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmlops-deployment.yaml
More file actions
205 lines (205 loc) · 3.74 KB
/
mlops-deployment.yaml
File metadata and controls
205 lines (205 loc) · 3.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
apiVersion: v1
kind: Namespace
metadata:
name: mlops
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ecommerce-front
namespace: mlops
spec:
replicas: 3
selector:
matchLabels:
app: ecommerce-front
template:
metadata:
labels:
app: ecommerce-front
spec:
containers:
- name: python-app
image: warpprod/rocket-ecommerce:latest
ports:
- containerPort: 5005
envFrom:
- configMapRef:
name: ecommerce-configmap
resources:
requests:
memory: 128Mi
cpu: 100m
limits:
memory: 2048Mi
cpu: 450m
---
apiVersion: v1
kind: ConfigMap
metadata:
name: ecommerce-configmap
namespace: mlops
data:
DB_ENGINE: "mysql"
DB_HOST: "mariadb"
DB_NAME: "ecommerce"
DB_USERNAME: "root"
DB_PASS: "SuperSecurePass123"
DB_PORT: "3306"
STRIPE_SECRET_KEY: "sk_test_..."
STRIPE_PUBLISHABLE_KEY: "pk_test_..."
---
apiVersion: v1
kind: Service
metadata:
name: ecommerce-front-service
namespace: mlops
spec:
type: NodePort
selector:
app: ecommerce-front
ports:
- protocol: TCP
port: 5005
targetPort: 5005
nodePort: 32005
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: mariadb-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: /mnt/data/mariadb
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mariadb-pvc
namespace: mlops
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: ConfigMap
metadata:
name: mariadb-config
namespace: mlops
labels:
app: mariadb
data:
my.cnf: |
[mysqld]
bind-address=0.0.0.0
default_storage_engine=InnoDB
innodb_file_per_table=1
max_connections=1000
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mariadb
namespace: mlops
spec:
replicas: 3
selector:
matchLabels:
app: mariadb
serviceName: mariadb
template:
metadata:
labels:
app: mariadb
spec:
containers:
- env:
- name: MYSQL_ROOT_PASSWORD
value: "SuperSecurePass123"
- name: MYSQL_DATABASE
value: "ecommerce"
image: mariadb:latest
name: mariadb
ports:
- containerPort: 3306
name: mariadb
volumeMounts:
- mountPath: /var/lib/mysql
name: mariadb-storage
- mountPath: /etc/mysql/conf.d
name: config-volume
volumes:
- configMap:
name: mariadb-config
name: config-volume
volumeClaimTemplates:
- metadata:
name: mariadb-storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: Service
metadata:
name: mariadb
namespace: mlops
spec:
ports:
- port: 3306
targetPort: 3306
selector:
app: mariadb
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: phpmyadmin
namespace: mlops
spec:
replicas: 3
selector:
matchLabels:
app: phpmyadmin
template:
metadata:
labels:
app: phpmyadmin
spec:
containers:
- name: phpmyadmin
image: phpmyadmin/phpmyadmin:latest
env:
- name: PMA_HOST
value: mariadb
- name: PMA_PORT
value: "3306"
- name: PMA_ARBITRARY
value: "1"
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: phpmyadmin-service
namespace: mlops
spec:
type: NodePort
ports:
- port: 8080
targetPort: 80
nodePort: 32080
selector:
app: phpmyadmin