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