openshift-velero-plugin
openshift-velero-plugin copied to clipboard
ObjectStorage Prefix specified in BackupStorageLocation is ignored
Hello,
Velero's BackupStorageLocation (.spec.objectStorage.prefix
) as well as OADP's DataProtectionApplication (.spec.backupLocations[].velero.objectStorage.prefix
) allow setting a (optional) prefix for files uploaded into the S3 bucket:
Velero assumes it has control over the location you provide so you should use a dedicated bucket or prefix. If you provide a prefix, then the rest of the bucket is safe to use for multiple purposes.
apiVersion: velero.io/v1
kind: BackupStorageLocation
metadata:
name: default
spec:
provider: aws
objectStorage:
bucket: myBucket
prefix: myPrefix
https://velero.io/docs/v1.13/api-types/backupstoragelocation/
Our BackupStorageLocation
is configured with such a prefix, but the plugin currently ignores this. This leads to conflicts in the S3 bucket since ImageStream
data is always uploaded to docker/registry/v2/...
(when using the PluginRegistry).
This appears to be the problematic part of the code: https://github.com/openshift/openshift-velero-plugin/blob/95ab2b038f0170ab6b0fa70bcb2d28268b312739/velero-plugins/imagestream/registry.go#L133
An additional environment variable REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=${BSL.spec.objectStorage.prefix}
should be added to address this (see example in the (registry configuration documentation](https://distribution.github.io/distribution/about/configuration/))