Enhanced Plugin Management — Design Proposal#9364
Open
abendrothj wants to merge 1 commit intovmware-tanzu:mainfrom
Open
Enhanced Plugin Management — Design Proposal#9364abendrothj wants to merge 1 commit intovmware-tanzu:mainfrom
abendrothj wants to merge 1 commit intovmware-tanzu:mainfrom
Conversation
3 tasks
Collaborator
|
might want to rebase. design proposal shouldn't contain .go changes. |
Collaborator
|
We can keep code changes in for now and once design is agreed and if implementation still need enhancement after that we can move implementation out to a follow up pr. |
11d0cea to
7b6ecbc
Compare
Contributor
|
@abendrothj The design's content should be in a Markdown file. |
Adds a design document for displaying built-in plugin status in `velero plugin get` and allowing `velero plugin remove <plugin-name>` to resolve plugin names to init containers. Closes vmware-tanzu#3210 Signed-off-by: Jake Abendroth <contact@jakea.net>
Author
|
@blackpiglet I've stripped the code changes, and created a design md file, ready for review |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Status: Draft
Author: Jake Abendroth (abendrothj)
Related issue: #3210
Related implementation PR: #9352
Target release: v1.19 (note: v1.18 feature freeze is near)
Summary
This proposal improves Velero's CLI/plugin UX by clearly indicating which plugins are built into the Velero server binary and by allowing
velero plugin remove <plugin-name>semantics that map user-facing plugin names (e.g., velero.io/aws) to init-container images/names. The changes are intentionally limited to CLI/API metadata and removal UX; they do not change plugin discovery or plugin runtime registration.The implementation work is in #9352 and this design PR is intended to let maintainers review the design independent of the implementation.
Motivation
velero plugin getbut cannot tell which plugins are built-in (and therefore cannot be removed).velero plugin removecurrently requires the init container name or image string; users expect to use plugin names shown invelero plugin getinstead.Goals
velero plugin remove <plugin-name>that resolves to an init container image/name and refuses removal of built-in plugins.velero plugin remove <image|container>behavior for backwards compatibility.Non-Goals
Proposed API changes
Modify the ServerStatusRequest API plugin information to carry additional optional fields:
File: pkg/apis/velero/v1/server_status_request_types.go
These fields are optional to preserve API compatibility with older clients.
Server-side behavior
File: internal/velero/serverstatusrequest.go
CLI output
File: pkg/cmd/util/output/plugin_printer.go
Plugin removal command
File: pkg/cmd/cli/plugin/remove.go
Accept plugin names (e.g., velero.io/aws) as input in addition to existing image/container names.
Workflow:
velero.io/aws->aws) to container name or image substring.--image/--containerflag).Maintain backwards compatibility:
velero plugin remove <image|container>remains valid.Compatibility
velero plugin remove <image|container>continues to work.Security considerations
Tests
velero plugin getshows BuiltIn flags;velero plugin remove <plugin-name>resolves correctly and patches Deployment; refusing removal for BuiltIn plugins.Implementation references