k8s nfs backup: add rsync staging path and per-run staging cleanup
- Add BACKUP_STAGING_PATH + RSYNC_BIN for staging before archive - Add cleanup_run_staging to EXIT trap to remove staging dir - Extend test harness for staging scenarios
This commit is contained in:
@@ -13,6 +13,7 @@ Behavior:
|
||||
- `kube-system`, `kube-public`, `kube-node-lease`, and `default` are excluded from scale actions by default.
|
||||
- Unmapped folder: backup still runs, Kubernetes scale actions are skipped.
|
||||
- Mapped folder: saves replicas, scales selected workloads down, waits, adds that folder to the shared run archive, restores replicas, waits again.
|
||||
- When `BACKUP_STAGING_PATH` is configured, a live rsync pre-copy is followed by a final offline delta; the namespace is restored before the staged copy is compressed.
|
||||
- Scale-down issues are warnings by policy (backup still runs).
|
||||
- Restore issues are warnings by policy (run can still complete successfully).
|
||||
- Cleanup retains the `N` most recent matching archives by modification time and deletes older ones.
|
||||
@@ -29,6 +30,8 @@ Optional:
|
||||
- `KUBE_CONTEXT` (default: empty)
|
||||
- `WORKLOAD_KINDS` (default: `deployment,statefulset,replicaset,replicationcontroller`)
|
||||
- `EXCLUDED_NAMESPACES` (default: `kube-system,kube-public,kube-node-lease,default`): Comma-separated namespace names that are always backed up without scale actions. Set an explicit empty value to disable the default exclusions.
|
||||
- `BACKUP_STAGING_PATH` (default: empty, disabled): Local staging parent for two-pass rsync. It must be outside `NFS_SOURCE_PATH` and have enough free space for the largest folder being backed up.
|
||||
- `RSYNC_BIN` (default: `rsync`)
|
||||
- `ARCHIVE_PREFIX` (default: `nfs-backup`)
|
||||
- `ARCHIVE_TS_FORMAT` (default: `%Y%m%d_%H%M%S`)
|
||||
- `SEVENZ_METHOD` (default: `lzma2`)
|
||||
@@ -62,6 +65,7 @@ Notification payload (success and failure):
|
||||
- Provide Kubernetes RBAC allowing `get`, `list`, and `scale` on configured workload kinds in target namespaces.
|
||||
- Ensure `kubectl` context and credentials are present in the runtime.
|
||||
- Ensure `7z` is installed in the runtime image/host.
|
||||
- When `BACKUP_STAGING_PATH` is enabled, ensure `rsync` is installed and place staging on fast local storage for the shortest offline delta.
|
||||
|
||||
## Failure Semantics
|
||||
|
||||
|
||||
Reference in New Issue
Block a user