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.

  1. 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.

  2. Connect to your cluster with kubectl

  3. Change namespace to opencrvs-deps-<environment>:

  4. Run following command to trigger restore jobs for all components:

    Example output:

  5. Verify all jobs completed without issues:

    Example output: Check job names like *-restore-job without 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 kubectl

  • Change namespace to opencrvs-deps-<environment>:

  • Make sure following kubernetes secrets exist:

    • backup-server-ssh-credentials

    • backup-encryption-secret

  • Generate values files from helm release:

  • Run following command to trigger restore jobs for all components:

    Example output:

Last updated