From 0851fd36096cef63d3757dff23a66be3a577d2e7 Mon Sep 17 00:00:00 2001 From: aggarwalakshun Date: Tue, 15 Apr 2025 11:33:44 +0530 Subject: [PATCH] feat: add Gitea deployment, services, and persistent volume claims --- cluster/apps/gitea/gitea-db.yml | 44 +++++++++++++++++++ cluster/apps/gitea/gitea-pvc.yml | 41 ++++++++++++++++++ cluster/apps/gitea/gitea-svc.yml | 58 +++++++++++++++++++++++++ cluster/apps/gitea/gitea.yml | 72 ++++++++++++++++++++++++++++++++ 4 files changed, 215 insertions(+) create mode 100644 cluster/apps/gitea/gitea-db.yml create mode 100644 cluster/apps/gitea/gitea-pvc.yml create mode 100644 cluster/apps/gitea/gitea-svc.yml create mode 100644 cluster/apps/gitea/gitea.yml diff --git a/cluster/apps/gitea/gitea-db.yml b/cluster/apps/gitea/gitea-db.yml new file mode 100644 index 0000000..b5fcedc --- /dev/null +++ b/cluster/apps/gitea/gitea-db.yml @@ -0,0 +1,44 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: gitea-db + namespace: default +spec: + selector: + matchLabels: + app: gitea-db + template: + metadata: + labels: + app: gitea-db + spec: + initContainers: + - name: init-cleanup + image: busybox + command: ["rm", "-rf", "/var/lib/postgresql/data/lost+found"] + volumeMounts: + - name: db + mountPath: /var/lib/postgresql/data + containers: + - name: gitea-db + image: postgres:15.10 + ports: + - containerPort: 5432 + env: + - name: POSTGRES_USER + value: "gitea" + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: gitea-db-secret + key: password + - name: POSTGRES_DB + value: "gitea" + volumeMounts: + - name: db + mountPath: /var/lib/postgresql/data + volumes: + - name: db + persistentVolumeClaim: + claimName: longhorn-gitea-db diff --git a/cluster/apps/gitea/gitea-pvc.yml b/cluster/apps/gitea/gitea-pvc.yml new file mode 100644 index 0000000..dbbd671 --- /dev/null +++ b/cluster/apps/gitea/gitea-pvc.yml @@ -0,0 +1,41 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: longhorn-gitea + namespace: default +spec: + accessModes: + - ReadWriteMany + storageClassName: longhorn + resources: + requests: + storage: 5Gi + +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: longhorn-gitea-db + namespace: default +spec: + accessModes: + - ReadWriteMany + storageClassName: longhorn + resources: + requests: + storage: 5Gi + +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: longhorn-gitea-dind + namespace: default +spec: + accessModes: + - ReadWriteMany + storageClassName: longhorn + resources: + requests: + storage: 5Gi diff --git a/cluster/apps/gitea/gitea-svc.yml b/cluster/apps/gitea/gitea-svc.yml new file mode 100644 index 0000000..66895eb --- /dev/null +++ b/cluster/apps/gitea/gitea-svc.yml @@ -0,0 +1,58 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: gitea-service + namespace: default +spec: + type: NodePort + selector: + app: gitea + ports: + - port: 3000 + targetPort: 3000 + nodePort: 3011 + protocol: TCP + +--- +apiVersion: v1 +kind: Service +metadata: + name: gitea-ssh-service + namespace: default +spec: + type: NodePort + selector: + app: gitea + ports: + - port: 22 + targetPort: 22 + nodePort: 222 + +--- +apiVersion: v1 +kind: Service +metadata: + name: gitea-db-service + namespace: default +spec: + selector: + app: gitea-db + ports: + - protocol: TCP + port: 5432 + targetPort: 5432 + +--- +apiVersion: v1 +kind: Service +metadata: + name: gitea-int-service + namespace: default +spec: + selector: + app: gitea + ports: + - protocol: TCP + port: 3000 + targetPort: 3000 diff --git a/cluster/apps/gitea/gitea.yml b/cluster/apps/gitea/gitea.yml new file mode 100644 index 0000000..498f420 --- /dev/null +++ b/cluster/apps/gitea/gitea.yml @@ -0,0 +1,72 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: gitea + namespace: default +spec: + replicas: 1 + selector: + matchLabels: + app: gitea + template: + metadata: + labels: + app: gitea + spec: + initContainers: + - name: wait-for-db + image: busybox + command: + - sh + - -c + - | + until nc -z -v -w30 gitea-db-service 5432; do + echo "Waiting for database to be ready..." + sleep 2 + done + containers: + - name: gitea + image: gitea/gitea:1.23.7 + ports: + - containerPort: 22 + - containerPort: 3000 + env: + - name: USER_UID + value: "1000" + - name: USER_GID + value: "1000" + - name: GITEA__database__DB_TYPE + value: "postgres" + - name: GITEA__database__HOST + value: "gitea-db-service:5432" + - name: GITEA__database__NAME + value: "gitea" + - name: GITEA__database__USER + value: "gitea" + - name: GITEA__database__PASSWD + valueFrom: + secretKeyRef: + name: gitea-db-secret + key: password + volumeMounts: + - name: gitea-data + mountPath: /data + subPath: gitea-data + - name: timezone + mountPath: /etc/timezone + - name: localtime + mountPath: /etc/localtime + volumes: + - name: timezone + hostPath: + path: /etc/timezone + type: File + - name: localtime + hostPath: + path: /etc/localtime + type: File + - name: gitea-data + persistentVolumeClaim: + claimName: longhorn-gitea +