split db and app into two deployments

This commit is contained in:
2025-12-10 03:39:03 +05:30
parent e5e65f2060
commit 3a984cc73e
4 changed files with 60 additions and 26 deletions

View File

@@ -6,7 +6,7 @@ metadata:
namespace: git-ops namespace: git-ops
data: data:
SEMAPHORE_DB_USER: "semaphore" SEMAPHORE_DB_USER: "semaphore"
SEMAPHORE_DB_HOST: "localhost" SEMAPHORE_DB_HOST: "semaphore-db-service"
SEMAPHORE_DB_PORT: "3306" SEMAPHORE_DB_PORT: "3306"
SEMAPHORE_DB_DIALECT: "mysql" SEMAPHORE_DB_DIALECT: "mysql"
SEMAPHORE_DB: "semaphore" SEMAPHORE_DB: "semaphore"

View File

@@ -0,0 +1,43 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: semaphore-db
namespace: git-ops
spec:
strategy:
type: Recreate
replicas: 1
selector:
matchLabels:
app: semaphore-db
template:
metadata:
labels:
app: semaphore-db
spec:
containers:
- name: mysql
image: mysql:9.5.0
ports:
- containerPort: 3306
env:
- name: MYSQL_RANDOM_ROOT_PASSWORD
value: "'yes'"
- name: MYSQL_DATABASE
value: "semaphore"
- name: MYSQL_USER
value: "semaphore"
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: semaphore-secrets
key: mysql_password
volumeMounts:
- name: db
mountPath: /var/lib/mysql
subPath: db
volumes:
- name: db
persistentVolumeClaim:
claimName: semaphore-longhorn

View File

@@ -14,3 +14,16 @@ spec:
ports: ports:
- port: 3002 - port: 3002
targetPort: 3000 targetPort: 3000
---
apiVersion: v1
kind: Service
metadata:
name: semaphore-db-service
namespace: git-ops
spec:
selector:
app: semaphore-db
ports:
- port: 3306
targetPort: 3306

View File

@@ -17,27 +17,9 @@ spec:
app: semaphore app: semaphore
spec: spec:
initContainers: initContainers:
- name: mysql - name: wait-for-db
image: mysql:9.5.0 image: busybox
restartPolicy: Always command: ['sh', '-c', 'until nc -z -v -w30 semaphore-db-service 3306; do echo "Waiting for database connection..."; sleep 5; done;']
ports:
- containerPort: 3306
env:
- name: MYSQL_RANDOM_ROOT_PASSWORD
value: "'yes'"
- name: MYSQL_DATABASE
value: "semaphore"
- name: MYSQL_USER
value: "semaphore"
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: semaphore-secrets
key: mysql_password
volumeMounts:
- name: db
mountPath: /var/lib/mysql
subPath: db
containers: containers:
- name: semaphore - name: semaphore
image: public.ecr.aws/semaphore/pro/server:v2.16.45 image: public.ecr.aws/semaphore/pro/server:v2.16.45
@@ -62,7 +44,3 @@ spec:
secretKeyRef: secretKeyRef:
name: semaphore-secrets name: semaphore-secrets
key: key key: key
volumes:
- name: db
persistentVolumeClaim:
claimName: semaphore-longhorn