stack.basicstack.de/apps/forgejo/forgejo-deployment.yaml
CTO Agent ef5ef56784 Fix Forgejo deployment hanging in Argo CD sync
Change deployment strategy from RollingUpdate (default) to Recreate
to resolve volume attachment conflict. The forgejo-data PVC uses
ReadWriteOnce access mode, which only allows attachment to one pod
at a time. RollingUpdate tries to start new pod before terminating
old pod, causing multi-attach error.

With Recreate strategy, old pod terminates first, volume detaches,
then new pod starts and successfully attaches the volume.

Resolves: DEV-380

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-25 15:25:23 +00:00

88 lines
2.4 KiB
YAML

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:
initContainers:
- name: init-permissions
image: busybox:latest
command:
- sh
- -c
- chown -R 1000:1000 /var/lib/gitea && chmod -R 755 /var/lib/gitea
volumeMounts:
- name: data
mountPath: /var/lib/gitea
containers:
- name: forgejo
image: codeberg.org/forgejo/forgejo:10-rootless
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 3000
protocol: TCP
- name: ssh
containerPort: 22
protocol: TCP
env:
- name: USER_UID
value: "1000"
- name: USER_GID
value: "1000"
- name: FORGEJO__database__DB_TYPE
value: postgres
- name: FORGEJO__database__HOST
value: forgejo-postgres:5432
- name: FORGEJO__database__NAME
valueFrom:
secretKeyRef:
name: forgejo-postgres-secret
key: POSTGRES_DB
- name: FORGEJO__database__USER
valueFrom:
secretKeyRef:
name: forgejo-postgres-secret
key: POSTGRES_USER
- name: FORGEJO__database__PASSWD
valueFrom:
secretKeyRef:
name: forgejo-postgres-secret
key: POSTGRES_PASSWORD
- name: FORGEJO__server__DOMAIN
value: forgejo.basicstack.de
- name: FORGEJO__server__ROOT_URL
value: https://forgejo.basicstack.de
- name: FORGEJO__server__SSH_DOMAIN
value: forgejo.basicstack.de
- name: FORGEJO__service__DISABLE_REGISTRATION
value: "true"
- name: FORGEJO__actions__ENABLED
value: "true"
- name: FORGEJO__actions__DEFAULT_ACTIONS_URL
value: "https://code.forgejo.org"
resources:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: "1"
memory: 2Gi
volumeMounts:
- name: data
mountPath: /var/lib/gitea
volumes:
- name: data
persistentVolumeClaim:
claimName: forgejo-data