Support MySQL Backups and Restores #62

Merged
jessebot merged 61 commits from refs/pull/62/head into main 2026-08-14 10:43:50 +00:00
jessebot commented 2026-08-14 10:25:52 +00:00 (Migrated from git.smallhack.org)

Changes

  • Supports backups and restores for MySQL databases

    This came at the cost of needing to refine our schema a little bit. The app level restore schema has removed the restore.cnpg_restore option and the restore schema now looks like this:

    restore:
      enabled: false
      db:
        # enable restoring mysql or postgresql, depending on the app
        # this option replaces the old restore.cnpg_restore
        enabled: true
      s3:
        # enable restoring S3 (seaweefs or other)
        enabled: true
      pvc:
        # restore app's PVCs (always restores s3 pvc if restore.s3.enabled)
        enabled: true
      restic_snapshot_ids:
        seaweedfs_volume: latest
        seaweedfs_filer: latest
    

    This also obviates the need for maintaining PVCs specifically for MySQL, as the restore process now restores from S3 (typically seaweedfs right now).

    We now have support for only restoring certain parts of an app. A full restore will still do everything, but you can conditionally just do s3, db, or pvc restores (or some combination).

  • We now always support adding the database hostname to your ExternalSecrets Provider

  • We support adding protocol to the issuer when saving the OIDC credentials to your ExternalSecrets provider (this only done for writefreely so far)

  • We now check to see if an OpenBao auth method for your app's namespace already exists instead of trying to create it again by default.

# Changes - Supports backups and restores for MySQL databases This came at the cost of needing to refine our schema a little bit. The app level `restore` schema has removed the `restore.cnpg_restore` option and the `restore` schema now looks like this: ```yaml restore: enabled: false db: # enable restoring mysql or postgresql, depending on the app # this option replaces the old restore.cnpg_restore enabled: true s3: # enable restoring S3 (seaweefs or other) enabled: true pvc: # restore app's PVCs (always restores s3 pvc if restore.s3.enabled) enabled: true restic_snapshot_ids: seaweedfs_volume: latest seaweedfs_filer: latest ``` This also obviates the need for maintaining PVCs specifically for MySQL, as the restore process now restores from S3 (typically seaweedfs right now). We now have support for only restoring certain parts of an app. A full restore will still do everything, but you can conditionally just do s3, db, or pvc restores (or some combination). - We now always support adding the database hostname to your ExternalSecrets Provider - We support adding protocol to the issuer when saving the OIDC credentials to your ExternalSecrets provider (this only done for writefreely so far) - We now check to see if an OpenBao auth method for your app's namespace already exists instead of trying to create it again by default.
Sign in to join this conversation.
No description provided.