forked from cerc-io/stack-orchestrator
Keep timestamped backup of etcd forever
Create member.backup-YYYYMMDD-HHMMSS before cleaning. Each cluster recreation creates a new backup, preserving history. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
720e01fc75
commit
e2d3c44321
@ -215,13 +215,16 @@ except: pass
|
|||||||
etcdutl snapshot restore /data/db --data-dir=/restore/new-etcd \
|
etcdutl snapshot restore /data/db --data-dir=/restore/new-etcd \
|
||||||
--skip-hash-check 2>/dev/null
|
--skip-hash-check 2>/dev/null
|
||||||
|
|
||||||
# Only after successful restore, swap directories
|
# Create timestamped backup of original (kept forever)
|
||||||
docker run --rm -v {etcd_path}:/etcd -v {temp_dir}:/tmp-work $ALPINE_IMAGE \
|
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
|
||||||
sh -c "mv /etcd/member /etcd/member.bak && \
|
docker run --rm -v {etcd_path}:/etcd $ALPINE_IMAGE \
|
||||||
mv /tmp-work/new-etcd/member /etcd/member && \
|
cp -a /etcd/member /etcd/member.backup-$TIMESTAMP
|
||||||
rm -rf /etcd/member.bak"
|
|
||||||
|
|
||||||
# Cleanup
|
# Replace original with cleaned version
|
||||||
|
docker run --rm -v {etcd_path}:/etcd -v {temp_dir}:/tmp-work $ALPINE_IMAGE \
|
||||||
|
sh -c "rm -rf /etcd/member && mv /tmp-work/new-etcd/member /etcd/member"
|
||||||
|
|
||||||
|
# Cleanup temp (but NOT the backup)
|
||||||
docker run --rm -v /tmp:/tmp $ALPINE_IMAGE rm -rf {temp_dir}
|
docker run --rm -v /tmp:/tmp $ALPINE_IMAGE rm -rf {temp_dir}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user