From 357099ae9f5b74289bd3568b2fc08ef8a865fde3 Mon Sep 17 00:00:00 2001 From: aggarwalakshun Date: Wed, 17 Dec 2025 20:43:59 +0530 Subject: [PATCH] use statefulSets and readinessProbes instead of initContainers --- .../git-ops/semaphore/semaphore-configmap.yml | 2 +- .../git-ops/semaphore/semaphore-db.yml | 23 +++++++++++-------- .../git-ops/semaphore/semaphore-pvc.yml | 14 ----------- .../git-ops/semaphore/semaphore-svc.yml | 6 +++-- .../default/git-ops/semaphore/semaphore.yml | 17 ++++++++++---- 5 files changed, 30 insertions(+), 32 deletions(-) delete mode 100644 clusters/default/git-ops/semaphore/semaphore-pvc.yml diff --git a/clusters/default/git-ops/semaphore/semaphore-configmap.yml b/clusters/default/git-ops/semaphore/semaphore-configmap.yml index 4cd6f6c..65e15b8 100644 --- a/clusters/default/git-ops/semaphore/semaphore-configmap.yml +++ b/clusters/default/git-ops/semaphore/semaphore-configmap.yml @@ -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" diff --git a/clusters/default/git-ops/semaphore/semaphore-db.yml b/clusters/default/git-ops/semaphore/semaphore-db.yml index cc04b70..9ce4304 100644 --- a/clusters/default/git-ops/semaphore/semaphore-db.yml +++ b/clusters/default/git-ops/semaphore/semaphore-db.yml @@ -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 diff --git a/clusters/default/git-ops/semaphore/semaphore-pvc.yml b/clusters/default/git-ops/semaphore/semaphore-pvc.yml deleted file mode 100644 index b83e2ba..0000000 --- a/clusters/default/git-ops/semaphore/semaphore-pvc.yml +++ /dev/null @@ -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 diff --git a/clusters/default/git-ops/semaphore/semaphore-svc.yml b/clusters/default/git-ops/semaphore/semaphore-svc.yml index add1116..659eba5 100644 --- a/clusters/default/git-ops/semaphore/semaphore-svc.yml +++ b/clusters/default/git-ops/semaphore/semaphore-svc.yml @@ -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 diff --git a/clusters/default/git-ops/semaphore/semaphore.yml b/clusters/default/git-ops/semaphore/semaphore.yml index a55d458..2308396 100644 --- a/clusters/default/git-ops/semaphore/semaphore.yml +++ b/clusters/default/git-ops/semaphore/semaphore.yml @@ -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