You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- User can pre-create PVC with specific settings if needed
239
266
240
267
**Future:** Could support external storage (S3, NFS) directly:
241
268
@@ -248,19 +275,14 @@ spec:
248
275
credentialsSecret: s3-creds
249
276
```
250
277
251
-
## Separation of Concerns
278
+
## Related Components
252
279
253
-
Keep controllers separate initially:
254
-
- **GaleraBackup/GaleraRestore** - Already in mariadb-operator, database-specific
280
+
These backup/restore capabilities complement but remain separate from:
281
+
- **GaleraBackup/GaleraRestore** - In mariadb-operator, database-specific dumps
255
282
- **OVNBackup/OVNRestore** - To be implemented, OVN database-specific
256
-
- **OpenStackControlPlaneBackup/Restore** - New, orchestrates full control plane backup
257
-
- **OpenStackDataPlaneBackup/Restore** - New, handles data plane backup
283
+
- **test-operator** - Used for post-restore validation (Tempest tests)
258
284
259
-
**Rationale:**
260
-
- Each has different concerns (database dump vs CR backup vs network topology)
261
-
- Different playbooks and logic
262
-
- Different status tracking needs
263
-
- Can evaluate generic backup controller later if patterns emerge
285
+
The generic backup/restore controller in openstack-operator orchestrates the full backup/restore workflow using playbooks, while these components handle specific subsystems.
264
286
265
287
## User Workflow
266
288
@@ -306,10 +328,10 @@ spec:
306
328
oadp:
307
329
enabled: true
308
330
namespace: openshift-adp
331
+
snapshotMoveData: true
332
+
ttl: 720h # 30 days
309
333
storage:
310
334
pvc: openstack-backup-storage
311
-
retentionPolicy:
312
-
keep: 7
313
335
EOF
314
336
315
337
# Controller creates CronJob, which creates backup CR instances daily
@@ -646,24 +668,37 @@ status:
646
668
647
669
**Future enhancement:** Support custom validation workflows (user-provided tests).
648
670
649
-
### 6. Generic vs specialized controllers: **Start with generic, separate if needed**
671
+
### 6. Controller architecture: **Two controllers (Backup and Restore)**
650
672
651
-
**Decision:** Start with one generic controller. Keep logic in playbooks for flexibility.
673
+
**Decision:** Two controllers - BackupController and RestoreController.
If we find significant Go logic is needed per-type (complex OADP orchestration, different reconciliation patterns), we can split into separate controllers later.
703
-
704
-
**Start simple, separate if complexity demands it.**
760
+
- ✅ Each controller handles both ControlPlane and DataPlane (similar logic)
705
761
706
762
### 7. OADP backup strategy: **One atomic backup for all PVCs**
707
763
@@ -908,10 +964,10 @@ Controller reads `operator-versions.txt` from restored archive and validates:
0 commit comments