-
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
Support Velero plugin versioning #3285
Labels
Area/Plugins
Issues related to plugin infra/internal plugins
Enhancement/Dev
Internal or Developer-focused Enhancement to Velero
Epic
Reviewed Q2 2021
target/FC
Milestone
Comments
nrb
added
Enhancement/Dev
Internal or Developer-focused Enhancement to Velero
Area/Plugins
Issues related to plugin infra/internal plugins
labels
Jan 15, 2021
@phuongatemc I know you're interested in this, and @sseago has some work that would greatly benefit from having this in place. |
reasonerjt
removed
the
1.10-candidate-rh
Committed to include by Red Hat for 1.10
label
Sep 10, 2022
I'll double check the PRs and associate with this issue. |
The versioning mechanism has been provided via #4943 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Area/Plugins
Issues related to plugin infra/internal plugins
Enhancement/Dev
Internal or Developer-focused Enhancement to Velero
Epic
Reviewed Q2 2021
target/FC
Describe the problem/challenge you have
Right now, when Velero makes changes to its plugin APIs, there's no mechanism for the Velero server to communicate the version of the API that is supported, or for the plugins to communicate what version they implement.
This leads to restrictions on what can be changed in the API, or breaking everyone's code with major releases. Backwards-compatible changes either lead to API expansion, or implementations that have to check for the presence of specific functions, which is a runtime check and prone to error.
Describe the solution you'd like
Ideally, there would be a version negotiation system that allows Velero's server to support some level of version skew, decoupling Velero and plugins from having to move their API in lock step. This way, Velero core can support some number of API versions while iterating on new API features, and plugin authors are not forced to upgrade right away.
The go-plugin library we use has support for this, but I don't know how sophisticated their implementation is.
Anything else you would like to add:
#1303 updated go-plugin to a version that supported plugin version negotiation, but I think there's still work to be done on top of that.
Vote on this issue!
This is an invitation to the Velero community to vote on issues, you can see the project's top voted issues listed here.
Use the "reaction smiley face" up to the right of this comment to vote.
The text was updated successfully, but these errors were encountered: