Aller au contenu

Stirling-PDF

Élément Valeur
URL https://pdf.lab.djayzone.com
Namespace stirling-pdf
Image docker.stirlingpdf.com/stirlingtools/stirling-pdf:3.0.2
Réplicas 0 à 2 moteurs par KEDA HTTP ; 1 OAuth2 Proxy léger reste actif
Placement SBG préféré, anti-affinité souple entre nœuds, réservation mémoire de 1 Gio par pod actif
Accès SSO Google via OAuth2 Proxy, liste blanche nominative
Disponibilité PDB maxUnavailable: 1, compatible avec la veille à zéro

Rôle

Stirling-PDF fournit plus de 60 outils de traitement PDF : fusion, séparation, compression, conversion, OCR, réorganisation, rotation, rédaction, signature et extraction d'images. Les documents sont envoyés uniquement au cluster OVH et ne transitent pas par un service PDF tiers.

Données et limites

  • Taille maximale d'une requête : 500 Mio au niveau Traefik.
  • Espace temporaire limité à 4 Gio par pod.
  • Les documents et fichiers temporaires utilisent emptyDir et disparaissent avec le pod.
  • Les réplicas actifs n'utilisent pas de volume persistant partagé.
  • La préférence SBG n'est pas bloquante : si Strasbourg est indisponible, Kubernetes peut replacer les deux pods ailleurs.
  • La demande mémoire de 1 Gio correspond à la consommation observée de 750 à 850 Mio et permet au scheduler de répartir la charge correctement.
  • Le login Stirling-PDF est désactivé car l'accès est protégé en amont par le SSO Google.
  • Comptes autorisés : djayzonewave@gmail.com et jemimahnzassi@gmail.com.
  • La liste blanche est déclarée dans le ConfigMap google-auth-allowed-emails; les identifiants OAuth restent dans le Secret Kubernetes google-oauth2-proxy-credentials, hors Git.
  • OAuth2 Proxy envoie les requêtes authentifiées à l'intercepteur KEDA. Après 300 secondes sans trafic, le moteur descend à zéro. La première ouverture suivante peut prendre plusieurs minutes si l'image doit être téléchargée puis Java démarré. L'InterceptorRoute attend jusqu'à 360 secondes un moteur prêt (budget startupProbe de 300 secondes et marge de 60 secondes pour l'image) ; le délai de réponse du moteur reste de 120 secondes. Le routage par Service est conservé explicitement avec HTTP add-on 0.16.
  • Le proxy d'authentification ne peut pas descendre à zéro : il doit recevoir la première requête et authentifier l'utilisateur avant le réveil du moteur. Un seul replica suffit pour cette application non critique et consomme au maximum 64 Mio ; son PDB autorise sa perturbation pendant une maintenance de nœud.
  • La valeur 0 dans Grafana est un état de veille sain. L'indicateur dédié affiche le nombre de moteurs actifs sans le classer en incident.

Exploitation

kubectl -n stirling-pdf get deploy,hpa,pod,svc,ingress,pdb,scaledobject,interceptorroute -o wide
kubectl -n stirling-pdf logs deploy/stirling-pdf --tail=200
kubectl -n stirling-pdf logs deploy/oauth2-proxy --tail=100
curl.exe -I https://pdf.lab.djayzone.com

Sans session SSO, la route publique doit répondre 302 vers Google sans réveiller Stirling-PDF. Après authentification, KEDA démarre le moteur si nécessaire. Un compte Google absent de la liste blanche doit recevoir un refus 403.

Mise à jour

Modifier explicitement le tag de l'image dans apps/ovh-primary/stirling-pdf/deployment.yaml, consulter les notes de version officielles, valider Kustomize, puis laisser Flux effectuer le rolling update.