From 5f9feb33f6553feb7c7c7c5ad300810721923a8d Mon Sep 17 00:00:00 2001 From: Sergei Poljanski Date: Sat, 21 Mar 2026 01:39:54 +0300 Subject: [PATCH] add forgejo --- apps/forgejo.yaml | 20 ++++++++++++++ apps/forgejo/deployment.yaml | 53 ++++++++++++++++++++++++++++++++++++ apps/forgejo/ingress.yaml | 16 +++++++++++ apps/forgejo/pvc.yaml | 12 ++++++++ apps/forgejo/service.yaml | 15 ++++++++++ 5 files changed, 116 insertions(+) create mode 100644 apps/forgejo.yaml create mode 100644 apps/forgejo/deployment.yaml create mode 100644 apps/forgejo/ingress.yaml create mode 100644 apps/forgejo/pvc.yaml create mode 100644 apps/forgejo/service.yaml diff --git a/apps/forgejo.yaml b/apps/forgejo.yaml new file mode 100644 index 0000000..1a1bf1d --- /dev/null +++ b/apps/forgejo.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: forgejo + namespace: argocd +spec: + project: default + source: + repoURL: ssh://git@git.czsk.it/asxpi/k8s-asxpio-gitops.git + targetRevision: main + path: apps/forgejo + destination: + server: https://kubernetes.default.svc + namespace: forgejo + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/apps/forgejo/deployment.yaml b/apps/forgejo/deployment.yaml new file mode 100644 index 0000000..4dba384 --- /dev/null +++ b/apps/forgejo/deployment.yaml @@ -0,0 +1,53 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: forgejo + namespace: forgejo +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app: forgejo + template: + metadata: + labels: + app: forgejo + spec: + containers: + - name: forgejo + image: codeberg.org/forgejo/forgejo:14.0.2 + ports: + - containerPort: 3000 + name: http + - containerPort: 22 + name: ssh + env: + - name: USER_UID + value: "1000" + - name: USER_GID + value: "1000" + - name: FORGEJO__database__DB_TYPE + value: sqlite3 + - name: FORGEJO__database__PATH + value: /data/gitea/gitea.db + volumeMounts: + - name: data + mountPath: /data + - name: config + mountPath: /data/gitea/conf/app.ini + subPath: app.ini + resources: + requests: + memory: 256Mi + cpu: 100m + limits: + memory: 512Mi + volumes: + - name: data + persistentVolumeClaim: + claimName: forgejo-data + - name: config + secret: + secretName: forgejo-config diff --git a/apps/forgejo/ingress.yaml b/apps/forgejo/ingress.yaml new file mode 100644 index 0000000..b00747e --- /dev/null +++ b/apps/forgejo/ingress.yaml @@ -0,0 +1,16 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: forgejo + namespace: forgejo +spec: + entryPoints: + - websecure + routes: + - match: Host(`git.czsk.it`) || Host(`git.asxp.io`) + kind: Rule + services: + - name: forgejo + port: 3000 + tls: + certResolver: letsencrypt diff --git a/apps/forgejo/pvc.yaml b/apps/forgejo/pvc.yaml new file mode 100644 index 0000000..c99a1cf --- /dev/null +++ b/apps/forgejo/pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: forgejo-data + namespace: forgejo +spec: + accessModes: + - ReadWriteOnce + storageClassName: hcloud-volumes + resources: + requests: + storage: 10Gi diff --git a/apps/forgejo/service.yaml b/apps/forgejo/service.yaml new file mode 100644 index 0000000..6531cd8 --- /dev/null +++ b/apps/forgejo/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: forgejo + namespace: forgejo +spec: + selector: + app: forgejo + ports: + - name: http + port: 3000 + targetPort: http + - name: ssh + port: 22 + targetPort: ssh