37 lines
1.1 KiB
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 |