diff --git a/helm-overrides/k8s-admin-prd-ase1/gitea/custom-values.yaml b/helm-overrides/k8s-admin-prd-ase1/gitea/custom-values.yaml index 285bf3e..7fd3994 100644 --- a/helm-overrides/k8s-admin-prd-ase1/gitea/custom-values.yaml +++ b/helm-overrides/k8s-admin-prd-ase1/gitea/custom-values.yaml @@ -12,6 +12,19 @@ gitea: # persistence.size must stay 10Gi to match the already-bound PVC — # local-path-provisioner doesn't support volume expansion. + # Chart default is RollingUpdate with maxUnavailable: 0 — the new pod + # always comes up before the old one terminates. On a real multi-node + # cluster with real RWO block storage that's fine (the new pod just + # can't mount until the old one releases). On this single-node cluster, + # local-path-provisioner's hostPath-style volume doesn't block a second + # same-node mount, so old+new pods briefly run concurrently against the + # same /data — and Gitea's LevelDB-backed queue holds an exclusive file + # lock, so the new pod crashes with "unable to lock level db ... + # resource temporarily unavailable". Recreate forces the old pod to + # fully terminate (and release the lock) before the new one starts. + strategy: + type: Recreate + persistence: size: 10Gi