@@ -1516,55 +1516,6 @@ When restoring to a different OpenShift cluster:
15161516
15171517---
15181518
1519- ## Recommended Workflow
1520-
1521- ### For Production Deployments:
1522-
1523- 1 . ** Stateless Services** (this procedure):
1524- - Backup CRs and secrets regularly (daily)
1525- - Use git for version control
1526- - Automate with CronJob
1527-
1528- 2 . ** Stateful Services** (separate procedure needed):
1529- - Regular database dumps (Galera)
1530- - OVN database backups
1531- - Volume snapshots (CSI snapshots)
1532-
1533- 3 . ** Full Recovery** :
1534- - Restore stateful services first (databases, OVN)
1535- - Then restore stateless services (this procedure)
1536- - Verify connectivity and reconciliation
1537-
1538- ### Automation Example:
1539-
1540- ``` bash
1541- #! /bin/bash
1542- # backup-openstack-crs.sh
1543-
1544- NAMESPACE=" openstack"
1545- BACKUP_DIR=" /backups/openstack/$( date +%Y%m%d-%H%M%S) "
1546- mkdir -p ${BACKUP_DIR}
1547-
1548- # Backup all CRs and resources
1549- oc get openstackcontrolplane -n ${NAMESPACE} -o json | jq ' del(.items[].metadata.uid, .items[].metadata.resourceVersion, .items[].metadata.creationTimestamp, .items[].metadata.managedFields, .metadata)' > ${BACKUP_DIR} /openstackcontrolplane-backup.json
1550- oc get network-attachment-definition -n ${NAMESPACE} -o json | jq ' del(.items[].metadata.uid, .items[].metadata.resourceVersion, .items[].metadata.creationTimestamp, .items[].metadata.managedFields, .metadata)' > ${BACKUP_DIR} /network-attachment-definitions-backup.json
1551- oc get issuer -n ${NAMESPACE} -o json | jq ' del(.items[].metadata.ownerReferences, .items[].metadata.uid, .items[].metadata.resourceVersion, .items[].metadata.creationTimestamp, .items[].metadata.managedFields, .metadata)' > ${BACKUP_DIR} /issuer-backup.json
1552- oc get certificate -n ${NAMESPACE} -o json | jq ' del(.items[].metadata.ownerReferences, .items[].metadata.uid, .items[].metadata.resourceVersion, .items[].metadata.creationTimestamp, .items[].metadata.managedFields, .metadata)' > ${BACKUP_DIR} /certificates-backup.json
1553- oc get secrets -n ${NAMESPACE} -o json | jq ' del(.items[].metadata.ownerReferences, .items[].metadata.uid, .items[].metadata.resourceVersion, .items[].metadata.creationTimestamp, .items[].metadata.managedFields, .metadata)' > ${BACKUP_DIR} /secrets-all-backup.json
1554- oc get configmaps -n ${NAMESPACE} -o json | jq ' del(.items[].metadata.ownerReferences, .items[].metadata.uid, .items[].metadata.resourceVersion, .items[].metadata.creationTimestamp, .items[].metadata.managedFields, .metadata)' > ${BACKUP_DIR} /configmaps-all-backup.json
1555- oc get netconfig -n ${NAMESPACE} -o json | jq ' del(.items[].metadata.uid, .items[].metadata.resourceVersion, .items[].metadata.creationTimestamp, .items[].metadata.managedFields, .metadata)' > ${BACKUP_DIR} /netconfig-backup.json
1556- oc get openstackversion -n ${NAMESPACE} -o json | jq ' del(.items[].metadata.ownerReferences, .items[].metadata.uid, .items[].metadata.resourceVersion, .items[].metadata.creationTimestamp, .items[].metadata.managedFields, .metadata)' > ${BACKUP_DIR} /openstackversion-backup.json 2> /dev/null || true
1557-
1558- # Commit to git
1559- cd ${BACKUP_DIR}
1560- git add .
1561- git commit -m " Backup $( date) "
1562- git push
1563-
1564- echo " Backup completed: ${BACKUP_DIR} "
1565- ```
1566-
1567- ---
15681519
15691520## Troubleshooting
15701521
0 commit comments