@@ -96,14 +96,151 @@ spec:
9696
9797You can load your `.env` as a ConfigMap :
9898
99- ` ` ` bash
100- kubectl create configmap mcpgateway-env --from-env-file=.env
99+ === "With SQLite (Default)"
100+ ` ` ` bash
101+ # Create .env file
102+ cat > .env << EOF
103+ HOST=0.0.0.0
104+ PORT=4444
105+ DATABASE_URL=sqlite:///./mcp.db
106+ JWT_SECRET_KEY=your-secret-key
107+ BASIC_AUTH_USER=admin
108+ BASIC_AUTH_PASSWORD=changeme
109+ MCPGATEWAY_UI_ENABLED=true
110+ MCPGATEWAY_ADMIN_API_ENABLED=true
111+ EOF
112+
113+ kubectl create configmap mcpgateway-env --from-env-file=.env
114+ ` ` `
115+
116+ === "With MariaDB"
117+ ` ` ` bash
118+ # Create .env file
119+ cat > .env << EOF
120+ HOST=0.0.0.0
121+ PORT=4444
122+ DATABASE_URL=mysql+pymysql://mysql:changeme@mariadb-service:3306/mcp
123+ JWT_SECRET_KEY=your-secret-key
124+ BASIC_AUTH_USER=admin
125+ BASIC_AUTH_PASSWORD=changeme
126+ MCPGATEWAY_UI_ENABLED=true
127+ MCPGATEWAY_ADMIN_API_ENABLED=true
128+ EOF
129+
130+ kubectl create configmap mcpgateway-env --from-env-file=.env
131+ ` ` `
132+
133+ === "With MySQL"
134+ ` ` ` bash
135+ # Create .env file
136+ cat > .env << EOF
137+ HOST=0.0.0.0
138+ PORT=4444
139+ DATABASE_URL=mysql+pymysql://mysql:changeme@mysql-service:3306/mcp
140+ JWT_SECRET_KEY=your-secret-key
141+ BASIC_AUTH_USER=admin
142+ BASIC_AUTH_PASSWORD=changeme
143+ MCPGATEWAY_UI_ENABLED=true
144+ MCPGATEWAY_ADMIN_API_ENABLED=true
145+ EOF
146+
147+ kubectl create configmap mcpgateway-env --from-env-file=.env
148+ ` ` `
149+
150+ === "With PostgreSQL"
151+ ` ` ` bash
152+ # Create .env file
153+ cat > .env << EOF
154+ HOST=0.0.0.0
155+ PORT=4444
156+ DATABASE_URL=postgresql://postgres:changeme@postgres-service:5432/mcp
157+ JWT_SECRET_KEY=your-secret-key
158+ BASIC_AUTH_USER=admin
159+ BASIC_AUTH_PASSWORD=changeme
160+ MCPGATEWAY_UI_ENABLED=true
161+ MCPGATEWAY_ADMIN_API_ENABLED=true
162+ EOF
163+
164+ kubectl create configmap mcpgateway-env --from-env-file=.env
101165` ` `
102166
103167> Make sure it includes `JWT_SECRET_KEY`, `AUTH_REQUIRED`, etc.
104168
105169---
106170
171+ # # 🗄 Database Deployment Examples
172+
173+ # ## MySQL Deployment
174+
175+ ` ` ` yaml
176+ apiVersion: apps/v1
177+ kind: Deployment
178+ metadata:
179+ name: mysql
180+ spec:
181+ replicas: 1
182+ selector:
183+ matchLabels:
184+ app: mysql
185+ template:
186+ metadata:
187+ labels:
188+ app: mysql
189+ spec:
190+ containers:
191+ - name: mysql
192+ image: mysql:8
193+ env:
194+ - name: MYSQL_ROOT_PASSWORD
195+ value: mysecretpassword
196+ - name: MYSQL_DATABASE
197+ value: mcp
198+ - name: MYSQL_USER
199+ value: mysql
200+ - name: MYSQL_PASSWORD
201+ value: changeme
202+ ports:
203+ - containerPort: 3306
204+ volumeMounts:
205+ - name: mysql-storage
206+ mountPath: /var/lib/mysql
207+ volumes:
208+ - name: mysql-storage
209+ persistentVolumeClaim:
210+ claimName: mysql-pvc
211+ ---
212+ apiVersion: v1
213+ kind: Service
214+ metadata:
215+ name: mysql-service
216+ spec:
217+ selector:
218+ app: mysql
219+ ports:
220+ - port: 3306
221+ targetPort: 3306
222+ ---
223+ apiVersion: v1
224+ kind: PersistentVolumeClaim
225+ metadata:
226+ name: mysql-pvc
227+ spec:
228+ accessModes:
229+ - ReadWriteOnce
230+ resources:
231+ requests:
232+ storage: 10Gi
233+ ` ` `
234+
235+ !!! info "MariaDB & MySQL Kubernetes Support"
236+ MariaDB and MySQL are **fully supported** in Kubernetes deployments :
237+
238+ - **36+ database tables** work perfectly with MariaDB 12.0+ and MySQL 8.4+
239+ - All **VARCHAR length issues** resolved for MariaDB/MySQL compatibility
240+ - Use connection string : ` mysql+pymysql://mysql:changeme@mariadb-service:3306/mcp`
241+
242+ ---
243+
107244# # 💡 OpenShift Considerations
108245
109246* Use `Route` instead of Ingress
0 commit comments