use statefulSets and readinessProbes instead of initContainers

This commit is contained in:
2025-12-17 20:43:59 +05:30
parent 2bc8629208
commit 357099ae9f
5 changed files with 30 additions and 32 deletions

View File

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

View File

@@ -1,16 +1,15 @@
---
apiVersion: apps/v1
kind: Deployment
kind: StatefulSet
metadata:
name: semaphore-db
namespace: git-ops
spec:
strategy:
type: Recreate
replicas: 1
selector:
matchLabels:
app: semaphore-db
serviceName: semaphore-db
replicas: 1
template:
metadata:
labels:
@@ -34,10 +33,14 @@ spec:
name: semaphore-secrets
key: mysql_password
volumeMounts:
- name: db
- name: semaphore-db
mountPath: /var/lib/mysql
subPath: db
volumes:
- name: db
persistentVolumeClaim:
claimName: semaphore-longhorn
volumeClaimTemplates:
- metadata:
name: semaphore-db
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 2Gi
storageClassName: longhorn

View File

@@ -1,14 +0,0 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: semaphore-longhorn
namespace: git-ops
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 2Gi
storageClassName: longhorn

View File

@@ -12,14 +12,15 @@ spec:
selector:
app: semaphore
ports:
- port: 3002
- name: http
port: 3002
targetPort: 3000
---
apiVersion: v1
kind: Service
metadata:
name: semaphore-db-service
name: semaphore-db
namespace: git-ops
spec:
selector:
@@ -27,3 +28,4 @@ spec:
ports:
- port: 3306
targetPort: 3306
clusterIP: None

View File

@@ -16,15 +16,22 @@ spec:
labels:
app: semaphore
spec:
initContainers:
- name: wait-for-db
image: busybox
command: ['sh', '-c', 'until nc -z -v -w30 semaphore-db-service 3306; do echo "Waiting for database connection..."; sleep 5; done;']
containers:
- name: semaphore
image: public.ecr.aws/semaphore/pro/server:v2.16.46
readinessProbe:
exec:
command:
- sh
- -c
- |
nc -z semaphore-db.git-ops.svc.cluster.local 3306
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 3
ports:
- containerPort: 3000
- name: http
containerPort: 3000
envFrom:
- configMapRef:
name: semaphore-config