Skip to content
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

Closed
nrb opened this issue Jan 15, 2021 · 3 comments
Closed

Support Velero plugin versioning #3285

nrb opened this issue Jan 15, 2021 · 3 comments
Assignees
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
Copy link
Contributor

nrb commented Jan 15, 2021

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.

  • 👍 for "The project would be better with this feature added"
  • 👎 for "This feature will not enhance the project in a meaningful way"
@nrb nrb added Enhancement/Dev Internal or Developer-focused Enhancement to Velero Area/Plugins Issues related to plugin infra/internal plugins labels Jan 15, 2021
@nrb nrb added this to the v1.7.0 milestone Jan 15, 2021
@nrb
Copy link
Contributor Author

nrb commented Feb 16, 2021

@phuongatemc I know you're interested in this, and @sseago has some work that would greatly benefit from having this in place.

@reasonerjt reasonerjt removed the 1.10-candidate-rh Committed to include by Red Hat for 1.10 label Sep 10, 2022
@reasonerjt reasonerjt modified the milestones: Prioritized issues, 1.10 Sep 10, 2022
@reasonerjt reasonerjt self-assigned this Oct 12, 2022
@reasonerjt
Copy link
Contributor

I'll double check the PRs and associate with this issue.

@reasonerjt
Copy link
Contributor

The versioning mechanism has been provided via #4943
The incremental changes like providing BIA v2 will be tracked via other issues.

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
Projects
None yet
Development

No branches or pull requests

6 participants