@@ -0,0 +1,36 @@
|
||||
# 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.
|
||||
#
|
||||
# À 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
|
||||
@@ -0,0 +1,83 @@
|
||||
# Prérequis (à faire une seule fois, hors de ce manifeste — même logique que
|
||||
# deploy/cert-manager/ et deploy/longhorn/, un composant partagé du cluster,
|
||||
# jamais par démo) :
|
||||
#
|
||||
# 1. Créer le bucket S3 (ou compatible S3 : MinIO, Backblaze B2, OVH,
|
||||
# Scaleway, Wasabi...) qui recevra les sauvegardes, avec une paire de
|
||||
# clés d'accès dédiée (droits limités à ce bucket).
|
||||
#
|
||||
# 2. Créer le fichier de credentials LOCALEMENT (ne jamais le committer) :
|
||||
# cat > credentials-velero <<EOF
|
||||
# [default]
|
||||
# aws_access_key_id=<votre_access_key>
|
||||
# aws_secret_access_key=<votre_secret_key>
|
||||
# EOF
|
||||
#
|
||||
# 3. Créer le namespace + le secret à partir de ce fichier :
|
||||
# kubectl create namespace velero
|
||||
# kubectl create secret generic cloud-credentials \
|
||||
# --namespace velero --from-file cloud=./credentials-velero
|
||||
# rm credentials-velero
|
||||
#
|
||||
# 4. Renseigner bucket / region / s3Url ci-dessous selon votre fournisseur,
|
||||
# puis installer Velero (chart officiel, version vérifiée) :
|
||||
# helm repo add vmware-tanzu https://vmware-tanzu.github.io/helm-charts
|
||||
# helm install velero vmware-tanzu/velero \
|
||||
# --namespace velero --version 12.1.0 \
|
||||
# -f deploy/velero/values.yaml
|
||||
# kubectl apply -f deploy/velero/schedule.yml
|
||||
#
|
||||
# Pourquoi File System Backup (kopia) plutôt que des snapshots CSI Longhorn :
|
||||
# ça fonctionne indépendamment du provisioner de stockage (pas de
|
||||
# VolumeSnapshotClass/CRD supplémentaire à maintenir), et couvre aussi bien
|
||||
# les PVC postgres/redis/uploads que le reste de chaque namespace de démo
|
||||
# (Secrets, ConfigMaps, Deployments...) pour une restauration complète, pas
|
||||
# seulement les données.
|
||||
|
||||
# velero-plugin-for-aws v1.14.2 : dernière version compatible avec Velero
|
||||
# 1.18.x (appVersion de ce chart) — vérifié sur le tableau de compatibilité
|
||||
# du plugin. Fonctionne aussi bien avec AWS S3 qu'avec un stockage
|
||||
# compatible S3 (MinIO, OVH, Backblaze...).
|
||||
initContainers:
|
||||
- name: velero-plugin-for-aws
|
||||
image: velero/velero-plugin-for-aws:v1.14.2
|
||||
imagePullPolicy: IfNotPresent
|
||||
volumeMounts:
|
||||
- mountPath: /target
|
||||
name: plugins
|
||||
|
||||
credentials:
|
||||
useSecret: false
|
||||
existingSecret: cloud-credentials
|
||||
|
||||
configuration:
|
||||
backupStorageLocation:
|
||||
- name: default
|
||||
provider: aws
|
||||
# Nom du bucket créé à l'étape 1. Requis.
|
||||
bucket: "CHANGE_ME_bucket_name"
|
||||
default: true
|
||||
credential:
|
||||
name: cloud-credentials
|
||||
key: cloud
|
||||
config:
|
||||
# Région du bucket (AWS) ou région arbitraire acceptée par votre
|
||||
# fournisseur S3-compatible (souvent "us-east-1" par défaut).
|
||||
region: "CHANGE_ME_region"
|
||||
# URL du endpoint S3-compatible — uniquement si ce n'est PAS AWS S3
|
||||
# (ex: "https://s3.fr-par.scw.cloud", "https://s3.eu-de.io.cloud.ovh.net").
|
||||
# Laisser vide pour AWS S3.
|
||||
s3Url: ""
|
||||
# La plupart des fournisseurs S3-compatibles (hors AWS) exigent le
|
||||
# style "path" plutôt que "virtual-hosted" pour adresser un bucket.
|
||||
s3ForcePathStyle: "true"
|
||||
|
||||
# Pas de VolumeSnapshotLocation : sauvegarde des volumes via File System
|
||||
# Backup (node-agent + kopia) plutôt que des snapshots CSI natifs.
|
||||
volumeSnapshotLocation: []
|
||||
|
||||
snapshotsEnabled: false
|
||||
|
||||
# Node-agent (DaemonSet) : nécessaire pour sauvegarder le contenu réel des
|
||||
# PVC (postgres, redis, uploads) via File System Backup.
|
||||
deployNodeAgent: true
|
||||
Reference in New Issue
Block a user