Velero backups are failing or showing as Partially Failed.
While connected to the workload cluster context where velero or TMC Data Protection is running, the following symptoms are observed:
kubectl get backup -A
kubectl describe backup -n <backup namespace> <latest backup name>
Resource List: <error getting backup resource list
kubectl get bsl -A
kubectl get backuprepository -A
kubectl describe backuprepository -n <backuprepository namespace> <backuprepository name>
"error to connect backup repo: error to connect repo with storage: error to connect to repository: repository not initialized in the provided storage"
"BackupStorageLocation <backupstoragelocation name> not found"
kubectl get podvolumebackup -A
vSphere Supervisor
Velero 1.13 and higher.
This issue can occur when using velero through Tanzu Mission Control Data Protection.
The velero backuprepository is out of sync with the underlying storage, such as minio.
Previously used backuprepository objects which are pointed to stale or now non-existent backupstoragelocation (BSL) or repositories in the underlying storage do not automatically update.
Velero is not aware of direct changes made manually in the underlying storage which can lead to mismatch with and data loss from the backuprepository object dedicated to the changed or deleted repository.
Velero does not save plain payload data directly to the underlying storage. It uses backup repository objects which support methods such as deduplication, compression and encryption to save the processed data to the underlying storage.
Unwanted backups should be cleaned up through velero CLI broadcom package or through the TMC Data Protection web UI.
For more information on velero CLI backup cleanup, see Velero Documentation on Backup Deletion
These stale backuprepository objects will need to be cleaned up manually. Velero will automatically create a backuprepository if it does not exist once the corresponding backup is started.
The below steps will advise on locating backuprepository objects that are stale or disconnected which can be cleaned up safely.
kubectl get backuprepository -A
kubectl describe backuprepository -n <backuprepository namespace> <backuprepository name>
"error to connect backup repo: error to connect repo with storage: error to connect to repository: repository not initialized in the provided storage"
"BackupStorageLocation <backupstoragelocation name> not found"
kubectl get bsl -A | grep <backupStorageLocation name from error>
kubectl get backuprepository -n <backuprepostiory namespace> <backuprepository name>
kubectl delete backuprepository -n <backuprepostiory namespace> <backuprepository name>
Velero will automatically create a backuprepository if it does not exist once the corresponding backup is started.
kubectl get backuprepository -A
kubectl describe backuprepository -n <backuprepository namespace> <backuprepository name>
Velero CLI should be installed using the equivalent Broadcom Package and should ideally match the version matrix as per below: