chore: build
ci-api / test (push) Successful in 25m49s

This commit is contained in:
Xor290
2026-08-18 20:07:52 +02:00
parent aa1aa60f00
commit dfc62c305d
25 changed files with 741 additions and 58 deletions
+23 -35
View File
@@ -1,36 +1,24 @@
# Sauvegarde quotidienne de tous les namespaces de démo (postgres, redis,
# uploads, et le reste : Secrets/ConfigMaps/Deployments pour une
# restauration complète) vers le bucket S3 configuré dans values.yaml.
# S'applique par défaut à TOUT namespace non exclu ci-dessous — une nouvelle
# démo créée dynamiquement (demo-xxxxx, premium-xxxxx) est donc couverte
# automatiquement, sans modifier ce fichier.
# Il n'y a plus de Schedule Velero statique/global ici (l'ancienne version de
# ce fichier en définissait deux : demos-daily et demos-frequent, couvrant
# TOUS les namespaces en un seul objet Backup par exécution).
#
# À appliquer après l'installation de Velero (voir values.yaml) :
# kubectl apply -f deploy/velero/schedule.yml
apiVersion: velero.io/v1
kind: Schedule
metadata:
name: demos-daily
namespace: velero
spec:
# 03h00 UTC, tous les jours — heure creuse pour ce cluster.
schedule: "0 3 * * *"
template:
includedNamespaces:
- "*"
excludedNamespaces:
- kube-system
- kube-public
- kube-node-lease
- default
- velero
- traefik
- longhorn-system
- cert-manager
# Sauvegarde le contenu réel des PVC (postgres/redis/uploads) via
# File System Backup — voir values.yaml.
defaultVolumesToFsBackup: true
storageLocation: default
# Conservation 30 jours : au-delà, la sauvegarde devient éligible à la
# purge automatique (garbage collection Velero).
ttl: 720h0m0s
# Pourquoi ce changement : Velero ne permet de supprimer qu'un objet Backup
# ENTIER, jamais une portion (ex: "juste les données de la démo X"). Avec un
# planning global multi-namespace, détruire une démo n'aurait donc jamais pu
# supprimer ses sauvegardes sans supprimer aussi celles des autres démos
# présentes dans le même Backup.
#
# À la place, le control-plane crée maintenant un Schedule Velero DÉDIÉ par
# démo (voir HelmProvisioner.ensureDemoBackupSchedule dans
# control-plane/api/internal/demos/helm_provisioner.go) :
# - à la création de la démo (Provision) et lors d'un passage en premium
# (MigrateToPremiumNamespace, un nouveau namespace = un nouveau planning) ;
# - toutes les 15 min, conservées 24h (fenêtre de perte de données
# minimale en cas de problème sur le cluster) ;
# - supprimé avec ses Backup déjà pris (HelmProvisioner.deleteDemoBackups)
# quand la démo est détruite — expiration du TTL ou destruction forcée
# par un admin, les deux passent par Service.Delete → Teardown.
#
# Rien à appliquer manuellement ici : ces Schedule sont gérés entièrement
# par le control-plane, dans le namespace "velero", nommés
# "demo-backup-<namespace>".