Skip to content

Commit a79c8fe

Browse files
stuggiclaude
andcommitted
Add future enhancement for filesystem-level backup restore procedure
Document alternative restore approaches for environments that cannot use CSI Volume Snapshots (e.g., local storage). Current limitation: - Staged deployment restore requires CSI snapshots - Filesystem backup (Restic/Kopia) needs pods mounting PVCs - This conflicts with infrastructure-only stage Proposed approaches: 1. Helper pods during restore - mount PVCs temporarily 2. Modified restore order - start services before data restore 3. External backup integration - tar/rsync instead of OADP Trade-offs documented for each approach. Why this enhancement: - Not all environments have CSI snapshot support - Local storage (common in dev/test) lacks CSI support - Provides flexibility for different deployment scenarios Implementation would include: - Detailed procedures for each approach - Helper pod manifests - Playbook tasks for external backup - Decision tree based on storage capabilities Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 209806c commit a79c8fe

1 file changed

Lines changed: 46 additions & 1 deletion

File tree

docs/dev/README.md

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,4 +520,49 @@ Package the backup playbook as a Kubernetes Job/CronJob:
520520
- RBAC permissions (extensive read access needed)
521521
- Triggering manual backups (oc create job --from=cronjob/...)
522522
- Monitoring job success/failure
523-
- Log retention and troubleshooting
523+
- Log retention and troubleshooting
524+
525+
### Alternative Restore Procedure for Filesystem-Level Backup
526+
527+
**Current Limitation:**
528+
The documented restore procedure requires CSI Volume Snapshots, which restore PVC data at the storage layer before pods start. This is necessary for the staged deployment approach (infrastructure-only → restore PVCs → restore database → resume deployment).
529+
530+
Filesystem-level backup (Restic/Kopia in OADP) requires pods to mount PVCs during restore, which conflicts with the infrastructure-only stage where service pods are not running.
531+
532+
**Proposed Enhancement:**
533+
Document an alternative restore procedure for environments that cannot use CSI snapshots (e.g., local storage, environments where CSI snapshots are not available):
534+
535+
**Approach 1: Helper Pods During Restore**
536+
1. Create long-running helper pods that mount PVCs
537+
2. Trigger OADP restore → filesystem restore via init containers
538+
3. Once data is restored, terminate helper pods
539+
4. Continue with normal restore procedure
540+
541+
**Approach 2: Modified Restore Order**
542+
1. Restore ControlPlane CR without infrastructure-only staging
543+
2. Allow services to start with empty PVCs
544+
3. Trigger OADP restore → filesystem restore populates data
545+
4. Restart services to pick up restored data
546+
5. Restore database from dumps
547+
548+
**Approach 3: External Backup Integration**
549+
1. Instead of OADP, use traditional backup tools (tar, rsync)
550+
2. Backup procedure: tar PVC contents, store externally
551+
3. Restore procedure: extract tarballs into PVs before starting pods
552+
4. Continue with staged deployment
553+
554+
**Trade-offs:**
555+
- Approach 1: Most aligned with staged deployment, but complex
556+
- Approach 2: Simpler, but services start before data is ready
557+
- Approach 3: Works without OADP, but requires external storage management
558+
559+
**Why this enhancement:**
560+
- Not all environments have CSI snapshot support
561+
- Local storage (common in dev/test) doesn't support CSI snapshots
562+
- Provides flexibility for different deployment scenarios
563+
564+
**Implementation:**
565+
- Document detailed restore procedure for each approach
566+
- Provide example helper pod manifests for Approach 1
567+
- Create playbook tasks for Approach 3 (external backup/restore)
568+
- Add decision tree: CSI snapshots available? → Use staged deployment; Otherwise → Use alternative approach

0 commit comments

Comments
 (0)