-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove Restic dependencies in Velero plugins #5274
Remove Restic dependencies in Velero plugins #5274
Comments
1. Update the snapshotter to support VSL credential 2. Bump up golang to v1.18 3. Remove restic related Fixes vmware-tanzu/velero#5392 Also related to vmware-tanzu/velero#5313 and vmware-tanzu/velero#5274 Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com>
@Lyndon-Li Is the suggestion that we add explicit information to the BIA/RIA interface about restic/PodVolume stuff? It's not clear to me what we're suggesting that Velero would want to provide to the plugins. Are there additional parameters that velero would supply to the plugin? What exactly would those be? (and note, that if this is to be a change to the BIA/RIA interface, it can't really be type-specific, since all resource types use the same plugin interface. @shubham-pampattiwar Since you've done more CSI work than I have, what sort of generic plugin interface additions would eliminate the problem described above? |
@sseago I don't have a specific design for the interface change. Generally speaking, this requires the BIA/RIA interface to expose some way to exclude some volumes, so that Velero could have the logics in itself and deliver the result to BIA/RIA as volumes to be excluded. |
@Lyndon-Li OK. It sounds like we need to get a design proposed (and approved) for that before we could consider adding that to the API. If that happens before we're ready to approve the current v2 API, then I can add it to that design. Otherwise it can go in its own design -- still in v2 if it's in the same release cycle (i.e. we won't do v2 and v3 before Velero 1.11 releases), although it would probably be in v3 if it's not ready to implement in the 1.11 dev cycle. |
In any case, the main challenge would be that whatever new inputs are added to the Execute() API method need to be generic. These APIs apply to all resource types, so any API methods added should probably not be volume-specific. |
@Lyndon-Li Are you talking about instances like these https://github.com/vmware-tanzu/velero-plugin-for-csi/blob/main/internal/backup/pvc_action.go#L92 |
@sseago |
@shubham-pampattiwar |
In v1.10 we'll only consider renaming. IMHO, that's not very high priority |
AWS and Azure plugins are set |
1. Update the snapshotter to support VSL credential 2. Bump up golang to v1.18 3. Remove restic related Fixes vmware-tanzu/velero#5392 Also related to vmware-tanzu/velero#5313 and vmware-tanzu/velero#5274 Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com> Signed-off-by: msdolbey <dolbes@gmail.com>
Some Velero BackupItemAction/RestoreItemAction plugins, for example, CSI plugin, vSphere plugin, contain some code to actively check and exclude the volumes handled by Velero's Pod Volume Backup/Restore. As a result, these plugins depend on Velero's code in PodVolume/Restic package.
In v1.10, we've refactored the code, plugins need to call the new function.
It is recommended to remove the irrational "Restic" text in plugins' code.
Moreover, it is not reasonable for the plugins to depend on Velero's logic, the plugins should have no knowledge of what Velero does, for example, Pod Volume Backup/Restore. Moreover, whenever the related code changes in Velero, changes are required in the plugins.
Therefore, let's refactor the BackupItemAction/RestoreItemAction plugin interface, so that this kind of dependencies can be removed.
The text was updated successfully, but these errors were encountered: