|
| 1 | +# RHOSO Backup & Restore - Slide Content |
| 2 | + |
| 3 | +## Slide 1: Overview - What & Why |
| 4 | + |
| 5 | +**Title: RHOSO Control Plane Backup & Restore** |
| 6 | + |
| 7 | +- Full backup and restore of the OpenStack control plane on OpenShift |
| 8 | +- Covers: databases (Galera), Kubernetes resources (CRs, Secrets, ConfigMaps), persistent volumes |
| 9 | +- Uses OADP (OpenShift API for Data Protection) / Velero as the backup engine |
| 10 | +- CSI volume snapshots for PVC data (Galera dumps, other persistent data) |
| 11 | +- Goal: recover from catastrophic control plane failure or migrate between clusters |
| 12 | + |
| 13 | +**Key points:** |
| 14 | +- Non-disruptive backup (no downtime during backup) |
| 15 | +- Ordered restore (dependencies respected: secrets -> infrastructure -> control plane) |
| 16 | +- Data plane nodes are untouched during backup/restore |
| 17 | + |
| 18 | +--- |
| 19 | + |
| 20 | +## Slide 2: Architecture - How It Works |
| 21 | + |
| 22 | +**Title: Architecture** |
| 23 | + |
| 24 | +``` |
| 25 | ++-------------------+ +--------------------+ |
| 26 | +| OpenStackBackup- | | Service Operators | |
| 27 | +| Config Controller | | (glance, mariadb, | |
| 28 | ++--------+----------+ | swift, ...) | |
| 29 | + | +---------+----------+ |
| 30 | + Labels user resources | |
| 31 | + (secrets, configmaps, Label their PVCs |
| 32 | + NADs, issuers) and secrets (CA certs) |
| 33 | + | at creation time |
| 34 | + +----------+---------------+ |
| 35 | + | |
| 36 | + +-------+-------+ +------------------+ |
| 37 | + | OADP / Velero +---------+ S3 Storage | |
| 38 | + +-------+-------+ | (MinIO/ODF/S3) | |
| 39 | + | +------------------+ |
| 40 | + Creates backups |
| 41 | + (2 Backup CRs): |
| 42 | + 1. PVCs (CSI snapshots) |
| 43 | + 2. Resources (CRs, etc.) |
| 44 | + | |
| 45 | ++-------------------+---+ +-------------------------+ |
| 46 | +| GaleraBackup CRs | | Ordered Restore | |
| 47 | +| (mariadb-operator) | | (phases): | |
| 48 | ++-----------------------+ | 00: PVCs | |
| 49 | + Defines backup config | 10: User Cfg | |
| 50 | + (CronJobs); Jobs | 20: Infra CRs | |
| 51 | + triggered before OADP | 30: CtlPlane | |
| 52 | + | 40: IPSet, GaleraBackup | |
| 53 | + | 50: Manual (DB, RMQ) | |
| 54 | + | 60: DataPlane | |
| 55 | + +-------------------------+ |
| 56 | +``` |
| 57 | + |
| 58 | +**Labeling responsibilities:** |
| 59 | +- **Operators** (e.g. glance-operator, mariadb-operator): label their own PVCs and secrets (e.g. CA certs) at creation time |
| 60 | +- **BackupConfig controller**: labels user-provided resources (secrets, configmaps, NADs, issuers) that have no ownerReferences |
| 61 | + |
| 62 | +**Backup flow:** |
| 63 | +1. GaleraBackup CRs define backup config; ad-hoc Jobs are triggered from the resulting CronJobs |
| 64 | +2. OADP Backup #1: CSI snapshots of labeled PVCs (includes fresh DB dumps) |
| 65 | +3. OADP Backup #2: All labeled Kubernetes resources |
| 66 | + |
| 67 | +**Restore flow:** |
| 68 | +1. Ordered Velero Restores (PVCs -> Secrets -> Infrastructure -> ControlPlane) |
| 69 | +2. GaleraRestore CRs restore databases from dumps |
| 70 | +3. RabbitMQ credential restore (original credentials from backup) |
| 71 | +4. DataPlane restore and EDPM re-deployment |
| 72 | + |
| 73 | +--- |
| 74 | + |
| 75 | +## Slide 3: Automation & CI Integration |
| 76 | + |
| 77 | +**Title: Ansible Automation** |
| 78 | + |
| 79 | +- Three independent Ansible roles: |
| 80 | + - `deploy_minio` - S3 storage backend (dev/test) |
| 81 | + - `openshift_adp` - OADP operator installation |
| 82 | + - `cifmw_backup_restore` - Backup/restore/cleanup lifecycle |
| 83 | + |
| 84 | +- Single test playbook runs full end-to-end: |
| 85 | + ``` |
| 86 | + ansible-playbook cifmw_backup_restore_test.yaml |
| 87 | + ``` |
| 88 | + |
| 89 | +- Each step independently controllable: |
| 90 | + ``` |
| 91 | + -e install_deps=false -e backup=false -e cleanup=false -e restore=true |
| 92 | + ``` |
| 93 | + |
| 94 | +- Dynamic discovery: Galera instances and RabbitMQ clusters read from OpenStackControlPlane CR |
| 95 | + |
| 96 | +- BackupConfig controller integrated into openstack-operator: |
| 97 | + - Auto-created with OpenStackControlPlane |
| 98 | + - Labels managed automatically, user can override via annotations |
| 99 | + |
| 100 | +--- |
0 commit comments