fix: WOPI registration on restart + Collabora readiness probes
- Add readiness/liveness probes to Collabora (GET /hosting/discovery) - Add init container to Drive backend that waits for Collabora and runs trigger_wopi_configuration on every pod start — fixes WOPI silently breaking after server restarts (chart Job only ran on sunbeam apply) - Add OIDC_RESPONSE_MODE=query to Projects config
This commit is contained in:
89
base/lasuite/patch-drive-wopi-init.yaml
Normal file
89
base/lasuite/patch-drive-wopi-init.yaml
Normal file
@@ -0,0 +1,89 @@
|
||||
# Init container that waits for Collabora and configures WOPI on every pod start.
|
||||
#
|
||||
# The Drive chart's configure_wopi Job is designed for ArgoCD PostSync hooks
|
||||
# and only runs on `sunbeam apply`. On server restart, no one re-triggers it,
|
||||
# so WOPI editing silently breaks. This init container fixes that — every time
|
||||
# a Drive backend pod starts (restart, rollout, scale-up), it waits for
|
||||
# Collabora and runs trigger_wopi_configuration before the main container.
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: drive-backend
|
||||
namespace: lasuite
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
initContainers:
|
||||
- name: configure-wopi
|
||||
image: lasuite/drive-backend:latest
|
||||
command:
|
||||
- "/bin/sh"
|
||||
- "-c"
|
||||
- |
|
||||
echo "Waiting for Collabora..."
|
||||
for i in $(seq 1 36); do
|
||||
if wget -qO /dev/null --timeout=5 http://collabora.lasuite.svc.cluster.local:9980/hosting/discovery 2>/dev/null; then
|
||||
echo "Collabora ready — configuring WOPI..."
|
||||
python manage.py trigger_wopi_configuration
|
||||
exit $?
|
||||
fi
|
||||
echo "Attempt $i/36: not ready, retrying in 5s..."
|
||||
sleep 5
|
||||
done
|
||||
echo "WARN: Collabora not ready after 3 minutes — starting without WOPI"
|
||||
exit 0
|
||||
env:
|
||||
# Database — minimum needed for Django manage.py
|
||||
- name: DB_ENGINE
|
||||
value: django.db.backends.postgresql
|
||||
- name: DB_NAME
|
||||
value: drive_db
|
||||
- name: DB_USER
|
||||
value: drive
|
||||
- name: DB_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: lasuite-postgres
|
||||
key: DB_HOST
|
||||
- name: DB_PORT
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: lasuite-postgres
|
||||
key: DB_PORT
|
||||
- name: DB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: drive-db-credentials
|
||||
key: password
|
||||
# Django
|
||||
- name: DJANGO_CONFIGURATION
|
||||
value: Production
|
||||
- name: DJANGO_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: drive-django-secret
|
||||
key: DJANGO_SECRET_KEY
|
||||
# Redis/Celery — trigger_wopi_configuration dispatches a Celery task
|
||||
- name: REDIS_URL
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: lasuite-valkey
|
||||
key: REDIS_URL
|
||||
- name: DJANGO_CELERY_BROKER_URL
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: lasuite-valkey
|
||||
key: CELERY_BROKER_URL
|
||||
# WOPI
|
||||
- name: WOPI_CLIENTS
|
||||
value: collabora
|
||||
- name: WOPI_COLLABORA_DISCOVERY_URL
|
||||
value: http://collabora.lasuite.svc.cluster.local:9980/hosting/discovery
|
||||
- name: WOPI_SRC_BASE_URL
|
||||
value: https://drive.DOMAIN_SUFFIX
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
memory: 64Mi
|
||||
cpu: 25m
|
||||
Reference in New Issue
Block a user