Prod: provision PVCs out of band (storageClass under operator control)
Build and Deploy Verso / deploy (push) Successful in 1m18s
Build and Deploy Verso / deploy (push) Successful in 1m18s
- Add server-ce/k8s/verso-prod-pvcs.yaml (mongo-data/redis-data/verso-data, ReadWriteOnce, storageClassName left for the operator to set — use a Ceph RBD block class). - Drop the inline PVC definitions from deploy-verso-prod.yml so it won't fight the operator-provisioned PVCs; the deploy now assumes they already exist. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -15,7 +15,8 @@ name: Build and Deploy Verso (prod)
|
||||
# - Public self-registration stays off (CE default): friends-only, admin
|
||||
# creates accounts / sends invites.
|
||||
#
|
||||
# Out of band (do once): create the `verso-smtp` Secret and a verso.alocoq.fr
|
||||
# Out of band (do once): create the PVCs (server-ce/k8s/verso-prod-pvcs.yaml,
|
||||
# with your storageClass), the `verso-smtp` Secret, and a verso.alocoq.fr
|
||||
# Ingress (see server-ce/k8s/verso-prod-ingress.example.yaml) + DNS.
|
||||
|
||||
on:
|
||||
@@ -136,42 +137,12 @@ jobs:
|
||||
run: |
|
||||
kubectl create namespace verso --dry-run=client -o yaml | kubectl apply -f -
|
||||
|
||||
# PVCs + Mongo/Redis. Applied idempotently — this step must never
|
||||
# delete these, so project data survives every deploy.
|
||||
# Mongo/Redis. Applied idempotently — this step must never delete
|
||||
# these, so project data survives every deploy. The PVCs themselves
|
||||
# are provisioned out of band (server-ce/k8s/verso-prod-pvcs.yaml) so
|
||||
# the storageClass is under your control; this step assumes
|
||||
# mongo-data / redis-data / verso-data already exist.
|
||||
cat <<'EOF' | kubectl apply -f -
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: mongo-data
|
||||
namespace: verso
|
||||
spec:
|
||||
accessModes: [ReadWriteOnce]
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: redis-data
|
||||
namespace: verso
|
||||
spec:
|
||||
accessModes: [ReadWriteOnce]
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: verso-data
|
||||
namespace: verso
|
||||
spec:
|
||||
accessModes: [ReadWriteOnce]
|
||||
resources:
|
||||
requests:
|
||||
storage: 20Gi
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
# PersistentVolumeClaims for the prod (verso namespace) instance.
|
||||
#
|
||||
# Provisioned out of band (not by the deploy workflow) so the storageClass is
|
||||
# under your control. Create them ONCE, before the first prod deploy:
|
||||
#
|
||||
# kubectl apply -f server-ce/k8s/verso-prod-pvcs.yaml
|
||||
#
|
||||
# Use a Ceph RBD (block) storageClass for all three — every volume here is
|
||||
# single-writer ReadWriteOnce (Mongo, Redis, and the single app pod). Set
|
||||
# storageClassName below to your RBD class (run `kubectl get storageclass` to
|
||||
# find its name). Sizes are starting points; RBD supports online expansion.
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: mongo-data
|
||||
namespace: verso
|
||||
spec:
|
||||
accessModes: [ReadWriteOnce]
|
||||
# storageClassName: ceph-rbd # <- set to your RBD (block) storageClass
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: redis-data
|
||||
namespace: verso
|
||||
spec:
|
||||
accessModes: [ReadWriteOnce]
|
||||
# storageClassName: ceph-rbd # <- set to your RBD (block) storageClass
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: verso-data
|
||||
namespace: verso
|
||||
# verso-data is mounted at /var/lib/overleaf/data: user files, compiles, output
|
||||
# cache, and published-presentation snapshots.
|
||||
spec:
|
||||
accessModes: [ReadWriteOnce]
|
||||
# storageClassName: ceph-rbd # <- set to your RBD (block) storageClass
|
||||
resources:
|
||||
requests:
|
||||
storage: 20Gi
|
||||
Reference in New Issue
Block a user