Currently, PodVolumeBackups (representing a restic backup) are not stored in object storage as JSON. This causes a couple of problems:
ark backup describe on a backup in Cluster B won't show the restic backups, even if they existPodVolumeBackups should be serialized and stored in object storage, and synced into the cluster through the backup sync controller. They should also be used as the source of truth during the restore process. The pod annotation that's stored in the tarball should be deprecated and eventually removed.
Goals
PodVolumeBackups and store it in object storage like the regular backups PodVolumeBackups will go in the same JSON file (and therefore tarball) as the regular backups@skriss / @nrb I think this ^ covers all of the design considerations for this change. Please check.
I don't see any major tradeoffs between creating a separate file for this or not, except that if there was a separate file, there would be that additional file to open when there are PodVolumeBackups. I think the expectation is that weather it is restic of a regular PV, it would all be found in the same place.
This all looks reasonable. Re: how to store the PodVolumeBackups:
<backup-name>-volumesnapshots.json.gz file to store both regular PV snapshots and PodVolumeBackups, although I'm not necessarily sure it's worth overloading.<backup-name>-podvolumebackups.json.gz, that specifically stores a serialized list of PodVolumeBackups.Ah. Thanks for the explanation, it's super helpful.
Option #3 is the one I'll go with.
I think that all sounds reasonable, and agreed option 3 is probably the most workable.