Manual restore / Disaster recovery
Before you begin
Manual restore process assumes automated backup workflow was already configured and at least one working backup copy exists.
Following components are supported by restore process:
MongoDB
PostgreSQL
MinIO
InfluxDB
Manual restore process invokes same Kubernetes cronjobs as for automated process. Manual restore process can be executed on environment with configured automated restore or even without automated restore configured.
Usually reasons for manual restore:
After environment reset
After OpenCRVS or dependencies upgrade/rollback when data was corrupted
Migration to new hardware or cloud
Disaster recovery
Following restore scenarios are available:
Manual restore when Automated restore is configured on the cluster and operator needs to manually restore datastores. Scenario applies to staging environment. Restore
Manual restore / Disaster recovery. Scenario applies to any environment.
Manual restore when Automated restore is configured
Its recommended to configure connection to cluster as described at Add new cluster to your default kubeconfig before running this task.
From your laptop SSH (login) to backup server and make sure latest backup exists, if for some reasons backup is not there, please follow Manual restore scenario.
Connect to your cluster with
kubectlChange namespace to opencrvs-deps-<environment>:
Run following command to trigger restore jobs for all components:
Example output:
Verify all jobs completed without issues:
Example output: Check job names like
*-restore-jobwithout ending number, jobs with number were triggered per schedule:
Manual restore / Disaster recovery
Its recommended to configure connection to cluster as described at Add new cluster to your default kubeconfig before running this task.
From your laptop SSH (login) to backup server
Find backup that needs to be restored in remote directory
/home/backup/<environment>/Note backup folder name, it should have following format:
YYYY-MM-DD, e/g 2025-10-23 (Year-Month-Day).From your laptop connect to your cluster with
kubectlChange namespace to opencrvs-deps-<environment>:
Make sure following kubernetes secrets exist:
backup-server-ssh-credentialsbackup-encryption-secret
Generate values files from helm release:
Run following command to trigger restore jobs for all components:
Example output:
Last updated