SecuFile
Déploiement Kubernetes
Déploiement sur Kubernetes avec secuops
Deploiement Kubernetes
Book: SecuFile — Stockage sécurisé de fichiers | Chapter: Installation et Configuration
Deploiement Kubernetes
Architecture de deploiement
SecuFile est deploye sur un cluster Kubernetes manage OVH (k8s-dev et k8s-prod) dans le namespace secufile.
Pods du namespace secufile
| Deployment | Image | Role |
|---|---|---|
api | secufile-backend | API Go (Gin) |
web-backend | secufile-webgui-backend | Backend Python (FastAPI) |
web-frontend | secufile-webgui-frontend | Frontend React (nginx) |
postgres | postgres:15 | Base de donnees |
redis | redis:7-alpine | Cache et rate limiting |
clamav | clamav/clamav | Antivirus (optionnel) |
Deploiement via SecuOps
SecuOps est l'outil CLI obligatoire pour toutes les operations Kubernetes.
# Build des images Docker
secuops build --app=secufile-backend --env=k8s-dev
secuops build --app=filesecure-webgui --env=k8s-dev
# Deploiement
secuops deploy --app=secufile-backend --env=k8s-dev
secuops deploy --app=filesecure-webgui --env=k8s-dev
# Verification du statut
secuops status --app=secufile-backend --env=k8s-dev
# Consultation des logs
secuops logs --app=secufile-backend --env=k8s-dev
# Mise a jour de l'image d'un deployment
secuops kubectl --env=k8s-dev -- set image deployment/api api=<image> -n secufile
secuops kubectl --env=k8s-dev -- set image deployment/web-backend web-backend=<image> -n secufile
secuops kubectl --env=k8s-dev -- set image deployment/web-frontend web-frontend=<image> -n secufileURLs de deploiement
| Environnement | Service | URL |
|---|---|---|
| k8s-dev | WebGUI | https://secufile.secuaas.dev |
| k8s-dev | API Go | https://api.secufile.secuaas.dev |
| k8s-dev | Landing | https://filesecure-landing.secuaas.dev |
| k8s-prod | WebGUI | https://secufile.secuaas.ovh |
| k8s-prod | API Go | https://api.secufile.secuaas.ovh |
Convention DNS
Conformement a la convention SecuAAS :
- Namespace :
secufile - URL principale :
secufile.secuaas.dev(dev) /secufile.secuaas.ovh(prod) - API :
api.secufile.secuaas.dev/api.secufile.secuaas.ovh
Health checks
Le deploiement Kubernetes utilise les probes suivantes :
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 10
periodSeconds: 30
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 10/health: Retourne 200 si le processus est vivant/ready: Retourne 200 si PostgreSQL et Redis sont accessibles, 503 sinon
Registre d'images
Les images Docker sont stockees dans le registre Harbor OVH :
qq9o8vqe.c1.bhs5.container-registry.ovh.net/secuops/Format des tags : {app}-{component}:main-{HHMMSS} (ex: secufile-backend-backend:main-012619)
Gestion des secrets Kubernetes
# Lister les secrets du namespace
secuops kubectl --env=k8s-dev -- get secrets -n secufile
# Le secret principal contient 32+ cles :
# secufile-secrets (JWT, DB, S3, Stripe, Zitadel, OVH, Resend, etc.)