cw-infra-apps/velero/templates/etcd-backup.yaml

37 lines
1.1 KiB
YAML

apiVersion: velero.io/v1
kind: Backup
metadata:
name: etcd-backup
spec:
includedNamespaces:
- velero
includedResources: []
hooks:
resources:
- name: velero
includedNamespaces:
- velero
pre:
- exec:
container: etcdctl
command:
- /bin/sh
- -c
- |
set -e
echo "Starting etcd backup at $(date)"
BACKUP_DIR="/var/lib/velero/etcd-backup"
TIMESTAMP=$(date +"%Y%m%d-%H%M%S")
mkdir -p "$BACKUP_DIR"
echo "Backup directory created: $BACKUP_DIR"
ETCDCTL_API=3 etcdctl snapshot save "$BACKUP_DIR/etcd-snapshot-$TIMESTAMP.db" \
--endpoints=https://10.130.0.20:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.pem \
--cert=/etc/kubernetes/pki/etcd/cert.pem \
--key=/etc/kubernetes/pki/etcd/key.pem
echo "etcd snapshot saved"
tar czf "$BACKUP_DIR/k8s-pki-$TIMESTAMP.tar.gz" -C /etc/kubernetes pki
echo "PKI files archived"
echo "Backup completed at $BACKUP_DIR"
storageLocation: default
ttl: 72h