Skip to content

CNPG Backups and Restores on Helm Platforms

Requirements

S3 Provider Setup

Adding Credentials

You can add the credentials by copy-pasting the Full Examples section in the common-docs and adapting those accordingly

CNPG Database Backups

CNPG-backed PostgreSQL databases have their own S3 backup system.

For each chart:

  1. Add CNPG backups to each database you want backed up

  2. Add the name you gave to the S3 credentials earlier, under the credentials section

It will look like something like this:

cnpg:
main:
backups:
enabled: true
credentials: s3
recovery:
credentials: s3
  1. Confirm the data is being sent to your S3 host after ~5 minutes. At 00:00 UTC a complete backup will be made.

  2. We advise you to set the “mode” to recovery, this should prevent the app starting with an empty database upon recovery.

It will look something like this:

cnpg:
main:
mode: recovery
backups:
enabled: true
credentials: s3
recovery:
credentials: s3

CNPG Database Restore

Before CNPG will correctly restore the database, the following modifications need to be done after recreating or importing the app configuration:

  1. Ensure you’ve setup CNPG backups as well as recovery as it was previously

  2. Ensure the “mode” is set to recovery

  3. Set “revision” on your recovery to match the previous revision setting on your backup settings.

  4. Increase the revision on your backup setting by 1 (or set to 1 if previously empty). Revision needs to set as string ("")

It will look something like this:

cnpg:
main:
mode: recovery
backups:
enabled: true
revision: "1"
credentials: s3
recovery:
# revision: "x" ## Can be added when you are would like to recover when the revision is > 0 (Step 3)
credentials: s3

Total System Restore and Migration to New System

When on a completely new system, you can easily restore using the above steps with the following caveats:

  • The PVC backend needs to support snapshots
  • The apps need to be called exactly the same as they were before, and use exactly the same values.yaml structure
  • If you’ve any non-PVC storage attached, be sure that this is still available or apps won’t start until this is resolved.